您的位置:首页 > 运维架构 > Linux

python脚本查看linux硬件信息

2013-04-03 17:03 549 查看
#!/usr/bin/env python

# -*- coding: utf-8 -*-

import rlcompleter, readline

readline.parse_and_bind('tab: complete')

import dmidecode

import time

import os

import re

system=dmidecode.system()

print "\033[1;36;40m%s\033[0m" %"获取服务器硬件信息"

for x,y in system.items():

for i in y['data'].items():

if i[0] == 'Product Name':

print "\033[1;31;40m%s\033[0m" % "-"*10

print 'Server models: %s' %i[1]

print i

print "\033[1;36;40m%s\033[0m" % "获取服务器CPU信息"

for x,y in dmidecode.processor().items():

for m,n in y.items():

if m=='data':

print "\033[1;31;40m%s\033[0m" % "-"*10

for x,y in n.items():

print x,y

print "\033[1;36;40m%s\033[0m" %"获取服务器BIOS信息"

for x,y in dmidecode.bios().items():

for m,n in y['data'].items():

if m.find('Characteristic')!=-1:

for x,y in n.items():

print "\033[1;34;40m%s\033[0m" % "-"*10

print x,y

else:

print "\033[1;32;40m%s\033[0m" % "-"*10

print m,n

print "\033[1;36;40m%s\033[0m" %"获取服务器内存信息"

for x,y in dmidecode.memory().items():

for m,n in y['data'].items():

print "\033[1;34;40m%s\033[0m" % "-"*10

print m,n

#便于调试,可以删除

print "x"*50

print "\033[1;36;40m%s\033[0m" %"获取服务器主板信息"

for x,y in dmidecode.baseboard().items():

#print x,y

for m,n in y['data'].items():

print "\033[1;34;40m%s\033[0m" % "-"*10

print m,n

print "\033[1;36;40m%s\033[0m" %"获取服务器主板插槽信息"

for x,y in dmidecode.slot().items():

for m,n in y['data'].items():

print "\033[1;34;40m%s\033[0m" % "-"*10

print m,n

print "\033[1;36;40m%s\033[0m" %"获取服务器网卡信息"

"""

安装linux硬件信息收集工具包

"""

#os.system('yum -y install make wget gcc* ;wget http://ezix.org/software/files/lshw-B.02.14.tar.gz ; tar -zxvf lshw-B.02.14

.tar.gz ;cd lshw-B.02.14 ; make && make install ; cd .. ; rm -rf lshw-B.02.14* ')

netcard=os.popen('lshw -C network ').read( )

print "产品名称: %s" % re.findall('product:.+(?#测试)',netcard)[0]

print "网卡速度: %s" % re.findall('size:.+(?#测试)',netcard)[0]

n=len(re.findall('\*-network:',netcard))

if n==0:

print "网卡IP地址: %s" %re.findall('ip=\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}',netcard)[0]

else:

for i in range(0,n):

try:

print "网卡IP地址: %s" %re.findall('ip=\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}',netcard)[i]

except IndexError:

i+=1

print "第%s块网卡没有IP地址" %i

#print "网卡IP地址: %s" % re.findall('ip=\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}',netcard)[0]

print "网卡状态: %s " % re.findall('link=\w{3}(?#测试)',netcard)[0]

print "网卡MAC地址: %s " % re.findall('serial:.+(?#测试)',netcard)[0]

print "网卡厂家: %s " % re.findall('vendor:.+(?#测试)',netcard)[0]

print "网络接口名称: %s" % re.findall('logical name:.+(?#测试)',netcard)[0]

"""

获取系统信息

"""

print "\033[1;36;40m%s\033[0m" %"获取服务器操作系统信息"

import platform

print "系统cpu位数: %s " % platform.processor()

print "系统信息: %s " % platform.system()

print "操作系统类型: %s" % platform.dist()[0]

print "系统主机名: %s " % platform.node()
本文出自 “linux浪子” 博客,请务必保留此出处http://kkkkkk.blog.51cto.com/468162/1170296
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: