#!/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)的更多相关文章

  1. 用python实现批量获取Linux主机简要信息并保存到Excel中 unstable 1.1

    #!/usr/bin/env python3 # -*- coding: utf-8 -*- #filename get_linux_info.py #获取Linux主机的信息 # titles=[' ...

  2. linux Java项目CPU内存占用高故障排查

    linux Java项目CPU内存占用高故障排查 top -Hp 进程号 显示进程中每个线程信息,配合jstack定位java线程运行情况 # 线程详情 jstack 线程PID # 查看堆内存中的对 ...

  3. AIX/Linux/HP-UX查看CPU/内存/磁盘/存储命令

    1.1    硬件环境验证方式 硬件环境主要包括CPU.内存.磁盘/存储.网络设备(如F5等).系统特有设备(如密押设备等)等,其中网络设备和系统特有设备由网络管理员或项目组提供为准,本节主要关注CP ...

  4. linux查看系统CPU,内存,硬盘使用情况

    top查看CPU,内存使用情况 free查看硬盘使用情况

  5. PHP 获取linux服务器性能CPU、内存、硬盘、进程等使用率

    数据库配置文件: conn.php <?php define("MONITORED_IP", "172.16.0.191"); //被监控的服务器IP地址 ...

  6. delphi 获取硬盘序列号、cpu号、bios号、网卡号

    delphi 获取硬盘 序列号 function GetIdeNum: String; type TSrbIoControl = packed record HeaderLength : ULONG; ...

  7. python 在linux下通过top,和dh命令获得cpu,内存,以及硬盘信息

    主要是通过os.popen读取命令输出实现的,os.popen启动新的进程,且将外部命令的输出作为文件类型对象返回.不能获得外部命令的返回值.既然是文件对象就可以直接用for in 来读取,代码如下: ...

  8. c#获取电脑运行状态(cpu,内存,网络,系统运行时间)

    public class DeviceMonitor { static readonly PerformanceCounter cpuCounter = new PerformanceCounter( ...

  9. [bash] 获取linux主机名,检视内中是否有特定字符串

    代码: #!/bin/bash hostname=$(hostname) #调用hostname命令获取主机名放入变量hostname中 #echo $hostname if [ `echo ${ho ...

随机推荐

  1. Python爬虫学习(11):Beautiful Soup的使用

    之前我们从网页中提取重要信息主要是通过自己编写正则表达式完成的,但是如果你觉得正则表达式很好写的话,那你估计不是地球人了,而且很容易出问题.下边要介绍的Beautiful Soup就可以帮你简化这些操 ...

  2. 树形DP+DFS序+树状数组 HDOJ 5293 Tree chain problem(树链问题)

    题目链接 题意: 有n个点的一棵树.其中树上有m条已知的链,每条链有一个权值.从中选出任意个不相交的链使得链的权值和最大. 思路: 树形DP.设dp[i]表示i的子树下的最优权值和,sum[i]表示不 ...

  3. jQuery.zTree的跳坑记录

    最近项目用到树型结构的交互,一开始并不打算选择zTree,为了项目进度我妥协了,这一妥协后果就是我进坑了,在2天的挣扎中,我终于跳出坑了,活了下来,有一些感慨纪录下来. 有一个业务场景需要2个树型结构 ...

  4. 螺旋方阵(4x4)(java实现)

    代码如下: public class N { public static void main(String[] args) { final int N=4; int a[][]=new int[N][ ...

  5. js动画

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. Android RecyclerView 的简单使用

    Android L SDK发布的,新API中最有意思的就是RecyclerView (后面为RV) 和 CardView了, 按照官方的说法, RV 是一个ListView 的一个更高级更灵活的一个版 ...

  7. 微软官方提供的免费正版 Windows 8.1/Win10/7/XP/Vista 操作系统虚拟机镜像下载

    https://dev.windows.com/en-us/microsoft-edge/tools/vms/windows/

  8. jQuery的加法运算.

    jQuery的加法运算. 加法运算 ?想必大家听到这都会不屑了,加法运算这是多么简单的运算.然而有的时候在jQuery也让人挺头疼的. 常规的是: var num1 = 123; var num2=1 ...

  9. Torch7 Tensor切片总结

    1.narrow(k,m,n) 这个函数是选中第k维的从m行开始,供选中n行 2.sub(dim1s,dim1e[,dim2s,dim2e,..,dim4s,dim4e]) 功能最强大,可以切任意的一 ...

  10. js获取HTTP的请求头信息

    以下为js获取HTTP的全部请求头信息: var req = new XMLHttpRequest(); req.open('GET', document.location, false); req. ...