• 用python获取服务器硬件信息[转]


     1 #!/usr/bin/env  python
     2 # -*- coding: utf-8 -*-
     3 import rlcompleter, readline
     4 readline.parse_and_bind('tab: complete')
     5 import dmidecode
     6 import   time
     7 import   os
     8 import   re
     9 system=dmidecode.system()
    10 print "33[1;36;40m%s33[0m" %"获取服务器硬件信息"
    11 for x,y in system.items():
    12 for i in y['data'].items():
    13 if  i[0] == 'Product Name':
    14 print "33[1;31;40m%s33[0m" % "-"*10
    15 print 'Server models: %s'  %i[1]   
    16 print i
    17  
    18 print "33[1;36;40m%s33[0m" % "获取服务器CPU信息"
    19 for x,y  in dmidecode.processor().items():
    20     for m,n in y.items():
    21     if m=='data':
    22 print "33[1;31;40m%s33[0m" % "-"*10
    23     for x,y in n.items():
    24         print x,y
    25 print "33[1;36;40m%s33[0m" %"获取服务器BIOS信息"
    26 for x,y in dmidecode.bios().items():
    27 for m,n in y['data'].items():
    28     if m.find('Characteristic')!=-1:
    29         for x,y in n.items():
    30         print "33[1;34;40m%s33[0m" % "-"*10
    31         print x,y
    32     else:
    33         print "33[1;32;40m%s33[0m" % "-"*10
    34         print m,n
    35 print "33[1;36;40m%s33[0m" %"获取服务器内存信息"
    36 for x,y in dmidecode.memory().items():
    37     for m,n in y['data'].items():
    38         print "33[1;34;40m%s33[0m" % "-"*10
    39         print m,n
    40 #便于调试,可以删除
    41 print "x"*50
    42 print "33[1;36;40m%s33[0m" %"获取服务器主板信息"
    43 for x,y in dmidecode.baseboard().items():
    44     #print  x,y
    45     for m,n in y['data'].items():
    46         print "33[1;34;40m%s33[0m" % "-"*10
    47         print m,n
    48 print "33[1;36;40m%s33[0m" %"获取服务器主板插槽信息"
    49 for x,y in dmidecode.slot().items():
    50     for m,n in y['data'].items():
    51         print "33[1;34;40m%s33[0m" % "-"*10
    52         print m,n
    53 print "33[1;36;40m%s33[0m" %"获取服务器网卡信息"
    54 """
    55 安装linux硬件信息收集工具包
    56    """
    57 #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
    58 .tar.gz ;cd lshw-B.02.14 ; make &&  make install ; cd .. ; rm -rf lshw-B.02.14* ')
    59 netcard=os.popen('lshw -C network   ').read( )
    60 print "产品名称: %s"         % re.findall('product:.+(?#测试)',netcard)[0]
    61 print "网卡速度: %s"         % re.findall('size:.+(?#测试)',netcard)[0]
    62 n=len(re.findall('*-network:',netcard))
    63 if n==0:
    64     print  "网卡IP地址: %s"          %re.findall('ip=d{1,3}.d{1,3}.d{1,3}.d{1,3}',netcard)[0] 
    65 else:
    66     for i  in range(0,n):
    67          try:
    68             print  "网卡IP地址: %s" %re.findall('ip=d{1,3}.d{1,3}.d{1,3}.d{1,3}',netcard)[i]
    69         except IndexError:
    70             i+=1
    71             print "第%s块网卡没有IP地址" %i 
    72 #print "网卡IP地址: %s"       % re.findall('ip=d{1,3}.d{1,3}.d{1,3}.d{1,3}',netcard)[0]
    73 print "网卡状态: %s "        % re.findall('link=w{3}(?#测试)',netcard)[0]
    74 print "网卡MAC地址: %s "     % re.findall('serial:.+(?#测试)',netcard)[0]
    75 print "网卡厂家: %s "        % re.findall('vendor:.+(?#测试)',netcard)[0]
    76 print "网络接口名称: %s"     % re.findall('logical name:.+(?#测试)',netcard)[0]
    77 """
    78 获取系统信息
    79 """
    80 print "33[1;36;40m%s33[0m" %"获取服务器操作系统信息"
    81 import platform
    82 print "系统cpu位数: %s "  % platform.processor()
    83 print "系统信息: %s "     % platform.system()
    84 print "操作系统类型: %s"  % platform.dist()[0]
    85 print "系统主机名: %s "   % platform.node()
    86 
    87                                                                                         
  • 相关阅读:
    CI框架用cookie实现用户自动登录
    php预定义常量
    ubuntu root密码
    jQuery的form中ajaxSubmit参数
    优酷视屏播放去广告链接id_XXX.html内容替换红色
    linux 重启apache:apachectl -k graceful
    python深copy与浅copy的区别
    python3中pathlib库的Path类方法汇总
    unittest使用discover加载不同目录下的case失败,提示Path must be within the project
    自定义HTMLTestRunner报告case名称
  • 原文地址:https://www.cnblogs.com/zhangjpn/p/6839128.html
Copyright © 2020-2023  润新知