Python实现获取Linux操作系统基础信息
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,获取信息如下:主机名系统版本系统内核版本总内存CPU生厂商CPU总核心数服务器生厂商服务器序列号各网卡IP,MAC和网卡名信息实现代码如下:#!/usr/bin/python#coding:utf8f
千家信息网最后更新 2026年11月01日Python实现获取Linux操作系统基础信息
获取信息如下:
主机名
系统版本
系统内核版本
总内存
CPU生厂商
CPU总核心数
服务器生厂商
服务器序列号
各网卡IP,MAC和网卡名信息
实现代码如下:
#!/usr/bin/python#coding:utf8from subprocess import Popen, PIPEimport re#获取主机名,也可以使用 uname -n 命令获取def hostname(): hostname = Popen(["hostname"], stdout=PIPE) hostname = hostname.stdout.read() return hostname#获取操作系统版本def osversion(): with open("/etc/redhat-release") as f: osversion = f.read() return osversion#获取操作系统内核版本def oscoreversion(): oscoreversion = Popen(["uname", "-r"], stdout=PIPE) oscoreversion = oscoreversion.stdout.read() return oscoreversion#获取CPU相关信息,如果存在多种不同CPU,那么CPU型号统计的为最后一种型号,这种情况少见def cpuinfo(): corenumber = [] with open("/proc/cpuinfo") as cpuinfo: for i in cpuinfo: if i.startswith("processor"): corenumber.append(i) if i.startswith("model name"): cpumode = i.split(":")[1] return corenumber, cpumode #调用此函数需要用两个变量来接收参数 #获取内存相关信息def meminfo(): with open("/proc/meminfo") as meminfo: for i in meminfo: if i.startswith("MemTotal"): totalmem = i.split(":")[1] return totalmem#获取服务器硬件相关信息def biosinfo(): biosinfo = Popen(["dmidecode", "-t", "system"], stdout=PIPE) biosinfo = biosinfo.stdout.readlines() for i in biosinfo: if "Manufacturer" in i: manufacturer = i.split(":")[1] if "Serial Number" in i: serialnumber = i.split(":")[1] return manufacturer, serialnumber #调用此函数需要使用两个变量接收参数 #获取网卡信息,包括网卡名,IP地址,MAC地址def ipaddrinfo(): #定义存储格式,以网卡名为key,mac地址和ip地址为一个列表,这个列表又为这网卡名的value def add(dic, key, value): dic.setdefault(key, [ ]).append(value) ipinfo = Popen(["ip", "addr"], stdout=PIPE) ipinfo = ipinfo.stdout.readlines() dict1 = {} for i in ipinfo: if re.search(r"^\d", i): devname = i.split(": ")[1] continue if re.findall("ether", i): devmac = i.split()[1] add(dict1, devname, devmac) continue if re.findall("global", i): devip = i.split()[1] add(dict1, devname, devip) continue return dict1 if __name__ == "__main__": hostname = hostname() osversion = osversion() oscoreversion = oscoreversion() totalmem = meminfo() cpunumber, cpumode = cpuinfo() manufacturer, serialnumber = biosinfo() ipinfo = ipaddrinfo() print("%s:\t\t %s" %("主机名", hostname)), print("%s:\t %s" %("系统版本", osversion)), print("%s:\t %s" %("系统内核版本", oscoreversion)), print("%s:\t %s" %("总内存", totalmem)), print("%s:\t%s" %("CPU生厂商", cpumode)), print("%s:\t %s" %("CPU总核心数", len(cpunumber))) print("%s:\t%s" %("服务器生厂商", manufacturer)), print("%s:\t%s" %("服务器序列号", serialnumber)), for x in ipinfo: y = ipinfo.get(x) ip = y[1] mac = y[0] print("%s%s:\t %s\t%s" %("网卡", x, ip, mac))输出结果如下:
以上结果经CentOS 7和CentOS 6测试没有问题,其它系统使用可能会出现一些IO错误
系统
网卡
信息
版本
服务器
服务
厂商
地址
主机
内存
内核
操作系统
两个
函数
参数
变量
型号
序列
序列号
核心
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
百单网互联网科技有限公司
哈尔滨大商圈互联网科技有限公司
互联网科技财经
互联网与科技发展
电子科技大学互联网
互联网女皇 腾讯科技
亿人帮互联网科技
互联网金融监管科技
隆华科技工业互联网
互联网教育科技公司vipkid
成都互联网科技公司100强
常德市电业局互联网科技部
互联网金融科技公司干啥的
互联网时代的科技公司
江苏互联网智能科技软件
广州燕处互联网科技有限公司
信承诺互联网科技有限公司
中国互联网公司的科技投入
互联网科技和医药行业
重庆科技产业互联网有哪些
什么是科技互联网
科技金融是不是互联网金融
平安科技 互联网
青岛互联网科技公司
互联网金融科技平台
老年人脱离互联网科技的作文
互联网科技公司实习生
华夏互联网科技业
济南有互联网科技公司吗
工业互联网科技成果转化