获取Linux主机的CPU、内存、主板、BIOS的信息(Centos)
#!/usr/bin/env python
#coding:utf-8
import subprocess
import re def Cmd_Exec(cmd):
'''
执行获取信息命令
:param cmd:
:return:
'''
result = subprocess.Popen(cmd, stdin=subprocess.PIPE, stdout=subprocess.PIPE, shell=True)
return result.stdout.read()
Cmd ={
'cpu':'cat /proc/cpuinfo',
'mem':'cat /proc/meminfo',
'bios':'dmidecode -t 0',
'motherbord':'dmidecode -t 1'
} host_info ={} #主机信息表 for k,v in Cmd.items():
if k == 'cpu':
rst_cpu = Cmd_Exec(v)
cpu_info = {
'CPU生产商':re.search('vendor_id\s*:.*', rst_cpu).group().split(':')[1], # 提供者
'CPU类型': re.search('model name\s*:.*', rst_cpu).group().split(':')[1], # 型号
'CPU主频': re.search('cpu MHz\s*:.*', rst_cpu).group().split(':')[1], # 主频
'CPU缓存': re.search('cache size\s*:.*', rst_cpu).group().split(':')[1], # cpu的缓存
'物理CPU个数': re.search('physical id\s*:.*', rst_cpu).group().split(':')[1], # cpu物理个数
'CPU盒数': re.search('cpu cores\s*:.*', rst_cpu).group().split(':')[1] # cpu盒数
}
host_info[k] = cpu_info
elif k == 'mem':
rst_mem = Cmd_Exec(v)
mem_info = {
'MemTotal': re.search('MemTotal:\s*.*', rst_mem).group().split(':')[1].strip(), # 机器总内存大小
'MemFree': re.search('MemFree:\s*.*', rst_mem).group().split(':')[1].strip(), # 机器当前空闲物理内存
#'MemAvailable': re.search('MemAvailable:\s*.*', rst_mem).group().split(':')[1].strip(), # 机器可用内存逻辑内存
'Buffers': re.search('Buffers:\s*.*', rst_mem).group().split(':')[1].strip(), # 内存当前的buffer值
'Cached': re.search('Cached:\s*.*', rst_mem).group().split(':')[1].strip(), # 内存当前的Cache值
'SwapTotal': re.search('SwapTotal:\s*.*', rst_mem).group().split(':')[1].strip(), # 交换分区的大小
'SwapFree': re.search('SwapFree:\s*.*', rst_mem).group().split(':')[1].strip(), # 空闲交换分区大小
}
host_info[k] = mem_info elif k == 'bios':
rst_bios = Cmd_Exec(v)
bios_info = {
re.search('\s*Vendor:.*', rst_bios).group(0).strip().split(':')[0]:
re.search('\s*Vendor:.*', rst_bios).group(0).strip().split(':')[0].strip(),
re.search('\s*Version:.*', rst_bios).group(0).strip().split(':')[0]:
re.search('\s*Version:.*', rst_bios).group(0).strip().split(':')[1].strip(),
re.search('\s*Release Date:.*', rst_bios).group(0).strip().split(':')[0]:
re.search('\s*Release Date:.*', rst_bios).group(0).strip().split(':')[1].strip()
}
host_info[k] = bios_info elif k == 'motherbord': rst_mb= Cmd_Exec(v)
motherboard_info = {
re.search('\s*Product Name:.*', rst_mb).group(0).strip().split(':')[0]:
re.search('\s*Product Name:.*', rst_mb).group(0).strip().split(':')[1].strip(),
re.search('\s*Version:.*', rst_mb).group(0).strip().split(':')[0]:
re.search('\s*Version:.*', rst_mb).group(0).strip().split(':')[1].strip(),
re.search('\s*Serial Number:.*', rst_mb).group(0).strip().split(':')[0]:
re.search('\s*Serial Number:.*', rst_mb).group(0).strip().split(':')[1].strip()
}
host_info[k] = motherboard_info
else:
print '不匹配' for k,v in host_info.items():
print '============='+k+'============='
for k1,v1 in v.items():
print k1 +": "+v1
执行结果如下:
=============mem=============
MemTotal: 1876632 kB
Cached: 455472 kB
SwapFree: 2047996 kB
SwapTotal: 2047996 kB
MemFree: 776972 kB
Buffers: 876 kB
=============bios=============
Version: 6.00
Vendor: Vendor
Release Date: 07/31/2013
=============motherboard=============
Serial Number: VMware-56 4d fc a3 c4 42 1b 81-67 f8 f1 58 53 8a 0d b3
Version: None
Product Name: VMware Virtual Platform
=============cpu=============
CPU缓存: 8192 KB
CPU类型: Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz
CPU主频: 3408.000
CPU盒数: 2
CPU物理个数: 0
CPU生产商: GenuineIntel
获取Linux主机的CPU、内存、主板、BIOS的信息(Centos)的更多相关文章
- 用python实现批量获取Linux主机简要信息并保存到Excel中 unstable 1.1
#!/usr/bin/env python3 # -*- coding: utf-8 -*- #filename get_linux_info.py #获取Linux主机的信息 # titles=[' ...
- linux Java项目CPU内存占用高故障排查
linux Java项目CPU内存占用高故障排查 top -Hp 进程号 显示进程中每个线程信息,配合jstack定位java线程运行情况 # 线程详情 jstack 线程PID # 查看堆内存中的对 ...
- AIX/Linux/HP-UX查看CPU/内存/磁盘/存储命令
1.1 硬件环境验证方式 硬件环境主要包括CPU.内存.磁盘/存储.网络设备(如F5等).系统特有设备(如密押设备等)等,其中网络设备和系统特有设备由网络管理员或项目组提供为准,本节主要关注CP ...
- linux查看系统CPU,内存,硬盘使用情况
top查看CPU,内存使用情况 free查看硬盘使用情况
- PHP 获取linux服务器性能CPU、内存、硬盘、进程等使用率
数据库配置文件: conn.php <?php define("MONITORED_IP", "172.16.0.191"); //被监控的服务器IP地址 ...
- delphi 获取硬盘序列号、cpu号、bios号、网卡号
delphi 获取硬盘 序列号 function GetIdeNum: String; type TSrbIoControl = packed record HeaderLength : ULONG; ...
- python 在linux下通过top,和dh命令获得cpu,内存,以及硬盘信息
主要是通过os.popen读取命令输出实现的,os.popen启动新的进程,且将外部命令的输出作为文件类型对象返回.不能获得外部命令的返回值.既然是文件对象就可以直接用for in 来读取,代码如下: ...
- c#获取电脑运行状态(cpu,内存,网络,系统运行时间)
public class DeviceMonitor { static readonly PerformanceCounter cpuCounter = new PerformanceCounter( ...
- [bash] 获取linux主机名,检视内中是否有特定字符串
代码: #!/bin/bash hostname=$(hostname) #调用hostname命令获取主机名放入变量hostname中 #echo $hostname if [ `echo ${ho ...
随机推荐
- iOS之转场动画
CodeApp地址CATransition_Demo:https://github.com/Wheat-Qin/CATransition_Demo iOS中比较全的翻转过渡动画(不只是苹果提供的).包 ...
- Xcode 8 Simulator Stop Logging too much info
按照以下内容设置即可:
- C++-数据库【1】-C++连接MSSQL数据库
测试环境—— 系统:Win7 64bit 编译器:VC++ 2015 数据库:MSSQL 2008 R2 #include <Windows.h> #include <stdio.h ...
- python基础06 循环
循环用于重复执行一些程序. for循环 for循环需要预先设定循环的次数n,然后执行隶属于for的语句. 基本构造是 for 元素 in 序列: statement 如: for a in [1 ...
- bzoj1103树状数组水题
(卧槽,居然规定了修改的两点直接相连,亏我想半天) 非常水的题,用dfs序(而且不用重复,应该是直接规模为n的dfs序)+树状数组可以轻松水 收获:树状数组一遍A(没啥好骄傲的,那么简单的东西) #i ...
- PHP浮点数精度问题
这一段时间维护一个类似团购的系统,需要处理订单,也就难免会处理金额 所以有很多PHP的坑 被我狠狠的踩了~~ 首先我们要知道浮点数的表示(IEEE 754): 简言之 就是 埋下了一个大坑 等着你跳 ...
- 【JBOSS】数据库连接配置小结
数据库驱动位置: %JBOSS_HOME%\server\default\lib目录下. 数据库配置文件位置:JBOSS_HOME\docs\examples\jca\XXXX-ds.xml < ...
- BIT 树状数组 详解 及 例题
(一)树状数组的概念 如果给定一个数组,要你求里面所有数的和,一般都会想到累加.但是当那个数组很大的时候,累加就显得太耗时了,时间复杂度为O(n),并且采用累加的方法还有一个局限,那就是,当修改掉数组 ...
- Ibatis 使用心得
(1)建表语句 sqlMap: <statement id="createTable" parameterClass="String" > $sql ...
- .Net程序员之不学Java做安卓开发:Android Studio中的即时调试窗口
对学.Net的人来说,JAVA开发是一场噩梦. .net中的即时窗口,调试时直接在里面写代码,对程序中的各种方法/属性进行调用,很方便. Android Studio中找了好久,参考如下网址,也有类似 ...