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 "\033[1;36;40m%s\033[0m" %"获取服务器硬件信息"
  11. for x,y in system.items():
  12. for i in y['data'].items():
  13. if i[0] == 'Product Name':
  14. print "\033[1;31;40m%s\033[0m" % "-"*10
  15. print 'Server models: %s' %i[1]
  16. print i
  17.  
  18. print "\033[1;36;40m%s\033[0m" % "获取服务器CPU信息"
  19. for x,y in dmidecode.processor().items():
  20. for m,n in y.items():
  21. if m=='data':
  22. print "\033[1;31;40m%s\033[0m" % "-"*10
  23. for x,y in n.items():
  24. print x,y
  25. print "\033[1;36;40m%s\033[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 "\033[1;34;40m%s\033[0m" % "-"*10
  31. print x,y
  32. else:
  33. print "\033[1;32;40m%s\033[0m" % "-"*10
  34. print m,n
  35. print "\033[1;36;40m%s\033[0m" %"获取服务器内存信息"
  36. for x,y in dmidecode.memory().items():
  37. for m,n in y['data'].items():
  38. print "\033[1;34;40m%s\033[0m" % "-"*10
  39. print m,n
  40. #便于调试,可以删除
  41. print "x"*50
  42. print "\033[1;36;40m%s\033[0m" %"获取服务器主板信息"
  43. for x,y in dmidecode.baseboard().items():
  44. #print x,y
  45. for m,n in y['data'].items():
  46. print "\033[1;34;40m%s\033[0m" % "-"*10
  47. print m,n
  48. print "\033[1;36;40m%s\033[0m" %"获取服务器主板插槽信息"
  49. for x,y in dmidecode.slot().items():
  50. for m,n in y['data'].items():
  51. print "\033[1;34;40m%s\033[0m" % "-"*10
  52. print m,n
  53. print "\033[1;36;40m%s\033[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 "\033[1;36;40m%s\033[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()

用python获取服务器硬件信息[转]的更多相关文章

  1. (部署新java程序,程序报错,需copy的一个包)——java使用siger 获取服务器硬件信息

    mcat-siger.sh  查看是否安装siger rsync -aPuv /usr/lib64/libsigar-amd64-linux.so $i:/usr/lib64/ java使用siger ...

  2. 通过python脚本获取服务器硬件信息

    #!/usr/bin/python # coding:utf-8 """ 采集机器自身信息 1 主机名 2 内存 3 ip与mac地址 4 cpu信息 5 硬盘分区信息 ...

  3. python 获取对象信息

    当我们拿到一个对象的引用时,如何知道这个对象是什么类型.有哪些方法呢? 使用type() 首先,我们来判断对象类型,使用type()函数: 基本类型都可以用type()判断: >>> ...

  4. Python 获取车票信息

    提示:该代码仅供学习使用,切勿滥用!!! 先来一个git地址:https://gitee.com/wang_li/li_wang 效果图: 逻辑: 1.获取Json文件的内容 2.根据信息生成URL ...

  5. 用python获取ip信息

    1.138网站 http://user.ip138.com/ip/首次注册后赠送1000次请求,API接口请求格式如下,必须要有token值 import httplib2 from urllib.p ...

  6. python获取对象信息

    获取对象信息 拿到一个变量,除了用 isinstance() 判断它是否是某种类型的实例外,还有没有别的方法获取到更多的信息呢? 例如,已有定义: class Person(object): def ...

  7. python获取机器信息脚本(网上寻找的)

    获取机器信息(待测试) # -*- coding: UTF-8 -*- import psutil import json import os import socket import struct ...

  8. python获取的信息列表微信公共平台和用户头像

    转载注明原文地址:http://blog.csdn.net/btyh17mxy/article/details/25207889 只写模拟登陆的方式获取微信从信息和头像库列表公共平台, - 相关后,功 ...

  9. 关于Python 获取windows信息收集

    收集一些Python操作windows的代码 (不管是自带的or第三方库)均来自网上 1.shutdown 操作 定时关机.重启.注销 #!/usr/bin/python #-*-coding:utf ...

随机推荐

  1. Java课堂作业详解

    今天的Java课堂留下了一个作业:使用Eclipse编写一个程序,使输入的两个数进行加和,并且输出他们的和.对于这个题目,我们首先可以把它分解成为三个不同的小步骤 第一步就是输入这两个数,因为我们无需 ...

  2. 基于python3.7的一个闯越自动签到脚本--demo版

    望指正demo的定位,有时候会抽风无法接受我的定位信息 #! /usr/bin/python3 # -*- coding:UTF- -*- # time : // : # file : chuangy ...

  3. stark组件(2):提取公共视图函数、URL分发和设置别名

    效果图: Handler类里处理的增删改查.路由分发.给URL设置别名等包括以后还要添加的很多功能,每一个数据库的类都需要,所以我们要把Handler提取成一个基类.提取成基类后,每一个数据表都可以继 ...

  4. callback回调函数【转】

    请给作者点赞--> 原文链接 什么是回调函数? 我们绕点远路来回答这个问题. 编程分为两类:系统编程(system programming)和应用编程(application programmi ...

  5. Linux基本命令运行

    文件基本操作: 增删查改: 创建文件:touch(创建文件和修改文件或者目录的时间戳),vim.vi(编辑/创建文件),mkdir(创建文件目录) 移动和修改文件名:mv 删除文件:rm –rf(强制 ...

  6. 使用 Dom4j 将 XML 转换为 MAP

    本文为转载:http://blog.sina.com.cn/s/blog_6145ed810100z164.html  原文地址. 自己仅作备忘录方便查找留了一份. 这是解析Xml 的辅助类 pack ...

  7. SXCPC2018 nucoj2004 国王的怪癖

    可持久化trie.考场上我脑补了一个trie树合并也A了 #include <iostream> #include <cstring> #include <cstdio& ...

  8. StartWith 测试

    var clientConfiguration = GetConfiguration("couchbase.json"); ClusterHelper.Initialize(cli ...

  9. _cdecl _stdcall

    __cdecl程序的压栈方式为C风格__stdcall为PASCAL风格 举个例子:(1)   C函数  Fun1(a,b,c)   函数调用时,参数压栈顺序为 c , b , a(2)   PASC ...

  10. selenium随笔

    1.点击一个连接通常录制一个click命令,通常需要改变它到clickAndWait命令,确保案例暂停,新的页面完全被转载进来. 2.测试案例需要检查Web页的属性,需要assert和verify命令 ...