用python获取服务器硬件信息[转]
- #!/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()
用python获取服务器硬件信息[转]的更多相关文章
- (部署新java程序,程序报错,需copy的一个包)——java使用siger 获取服务器硬件信息
mcat-siger.sh 查看是否安装siger rsync -aPuv /usr/lib64/libsigar-amd64-linux.so $i:/usr/lib64/ java使用siger ...
- 通过python脚本获取服务器硬件信息
#!/usr/bin/python # coding:utf-8 """ 采集机器自身信息 1 主机名 2 内存 3 ip与mac地址 4 cpu信息 5 硬盘分区信息 ...
- python 获取对象信息
当我们拿到一个对象的引用时,如何知道这个对象是什么类型.有哪些方法呢? 使用type() 首先,我们来判断对象类型,使用type()函数: 基本类型都可以用type()判断: >>> ...
- Python 获取车票信息
提示:该代码仅供学习使用,切勿滥用!!! 先来一个git地址:https://gitee.com/wang_li/li_wang 效果图: 逻辑: 1.获取Json文件的内容 2.根据信息生成URL ...
- 用python获取ip信息
1.138网站 http://user.ip138.com/ip/首次注册后赠送1000次请求,API接口请求格式如下,必须要有token值 import httplib2 from urllib.p ...
- python获取对象信息
获取对象信息 拿到一个变量,除了用 isinstance() 判断它是否是某种类型的实例外,还有没有别的方法获取到更多的信息呢? 例如,已有定义: class Person(object): def ...
- python获取机器信息脚本(网上寻找的)
获取机器信息(待测试) # -*- coding: UTF-8 -*- import psutil import json import os import socket import struct ...
- python获取的信息列表微信公共平台和用户头像
转载注明原文地址:http://blog.csdn.net/btyh17mxy/article/details/25207889 只写模拟登陆的方式获取微信从信息和头像库列表公共平台, - 相关后,功 ...
- 关于Python 获取windows信息收集
收集一些Python操作windows的代码 (不管是自带的or第三方库)均来自网上 1.shutdown 操作 定时关机.重启.注销 #!/usr/bin/python #-*-coding:utf ...
随机推荐
- Java课堂作业详解
今天的Java课堂留下了一个作业:使用Eclipse编写一个程序,使输入的两个数进行加和,并且输出他们的和.对于这个题目,我们首先可以把它分解成为三个不同的小步骤 第一步就是输入这两个数,因为我们无需 ...
- 基于python3.7的一个闯越自动签到脚本--demo版
望指正demo的定位,有时候会抽风无法接受我的定位信息 #! /usr/bin/python3 # -*- coding:UTF- -*- # time : // : # file : chuangy ...
- stark组件(2):提取公共视图函数、URL分发和设置别名
效果图: Handler类里处理的增删改查.路由分发.给URL设置别名等包括以后还要添加的很多功能,每一个数据库的类都需要,所以我们要把Handler提取成一个基类.提取成基类后,每一个数据表都可以继 ...
- callback回调函数【转】
请给作者点赞--> 原文链接 什么是回调函数? 我们绕点远路来回答这个问题. 编程分为两类:系统编程(system programming)和应用编程(application programmi ...
- Linux基本命令运行
文件基本操作: 增删查改: 创建文件:touch(创建文件和修改文件或者目录的时间戳),vim.vi(编辑/创建文件),mkdir(创建文件目录) 移动和修改文件名:mv 删除文件:rm –rf(强制 ...
- 使用 Dom4j 将 XML 转换为 MAP
本文为转载:http://blog.sina.com.cn/s/blog_6145ed810100z164.html 原文地址. 自己仅作备忘录方便查找留了一份. 这是解析Xml 的辅助类 pack ...
- SXCPC2018 nucoj2004 国王的怪癖
可持久化trie.考场上我脑补了一个trie树合并也A了 #include <iostream> #include <cstring> #include <cstdio& ...
- StartWith 测试
var clientConfiguration = GetConfiguration("couchbase.json"); ClusterHelper.Initialize(cli ...
- _cdecl _stdcall
__cdecl程序的压栈方式为C风格__stdcall为PASCAL风格 举个例子:(1) C函数 Fun1(a,b,c) 函数调用时,参数压栈顺序为 c , b , a(2) PASC ...
- selenium随笔
1.点击一个连接通常录制一个click命令,通常需要改变它到clickAndWait命令,确保案例暂停,新的页面完全被转载进来. 2.测试案例需要检查Web页的属性,需要assert和verify命令 ...