python如何获取服务器硬件信息
作者:zhangjpn 发布时间:2023-05-10 18:28:06
标签:python,服务器
本文实例为大家分享了Android九宫格图片展示的具体代码,供大家参考,具体内容如下
#!/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()


猜你喜欢
- 可以说,互联网就是由一个个链接进行信息流通的。没有连接的网站如同一潭死水,毫无生气。当一个访客进入你的网站,在浏览的过程中,如果你的内容不引
- “/xxxxx”应用程序中的服务器错误。 -------------------------------------------------
- JavaScript 中 typeof 和 instanceof 常用来判断一个变量是否为空,或者是什么类型的。但它们之间还是有区别的:ty
- 优化算法时间复杂度算法的时间复杂度对程序的执行效率影响最大,在Python中可以通过选择合适的数据结构来优化时间复杂度,如list和set查
- Java 使用Sqllite 数据库如何生成db文件 &n
- 在MySQL中,对于索引的使用并是一直都采用正确的决定。简单表的示例:CREATE TABLE `r2` (ID` int(11) DEFA
- 环境:Windows, Python2.7一维情况:<span style="font-size:14px;"&g
- USE MASTER GO IF EXISTS(SELECT * FROM dbo.sysdatabases WHERE name='
- 爬取一些网站下指定的内容,一般来说可以用xpath来直接从网页上来获取,但是当我们获取的内容不唯一的时候我们无法选择,我们所需要的、所指定的
- 一、Sql Server中的日期与时间函数 1. 当前系统日期、时间 select getdate() 2. dateadd 在向指定日期加
- 在MySQL数据库中导出整个数据库:1.导出整个数据库mysqldump -u 用户名 -p 数据库名 > 导出的文件名mysqldu
- 进过两天的研究终于实现了cookie的免密登录,其实就是session。特别开心,因为在Python爬虫群里问那些大佬,可是他们的回答令我寒
- 细心的人都会发现GitHub个人主页有一个记录每天贡献次数的面板,我暂且称之为贡献面板。就像下图那个样子。只要当天在GitHub有提交记录,
- 接着上一篇《服务端XMLHTTP(ServerXMLHTTP in ASP)基本应用(上)》继续讲讲ServerXMLH
- 可以不依靠DSN,但又可以在数据库连接字符串中指定驱动程序、服务器名字、数据库、数据库账号和密码吗?可以。在SQL Server 7,使用这
- 最基本的MMM安装必须至少需要2个数据库服务器和一个监控服务器下面要配置的MySQL Cluster环境包含四台数据库服务器和一台监控服务器
- 本文实例讲述了Python进程,多进程,获取进程id,给子进程传递参数操作。分享给大家供大家参考,具体如下:线程与线程之间共享全局变量,进程
- 一、装饰器的本质:装饰器(decorator)本质是函数闭包(function closure)的语法糖(Syntactic sugar)函
- Check In/Out功能简介:该功能是专门针对多用户管理而预设的。即多用户使用多帐号管理同一站点。
- 背景在本地开发vue项目的时候,当你习惯了proxyTable解决本地跨域的问题,切换到nuxt的时候,你会发现,添加了proxyTable