python脚本查看linux硬件信息

发布时间:2019-08-26 07:20:45编辑:auto阅读(1931)

    #!/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()

关键字