Python实现获取Linux操作系统基础信息-创新互联

获取信息如下:

目前创新互联已为超过千家的企业提供了网站建设、域名、网页空间、绵阳服务器托管、企业网站设计、乌鲁木齐网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

    主机名

    系统版本

    系统内核版本

    总内存

    CPU生厂商

    CPU总核心数

    服务器生厂商

    服务器序列号

    各网卡IP,MAC和网卡名信息

实现代码如下:

#!/usr/bin/python #coding:utf8 from subprocess import Popen, PIPE import 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))

输出结果如下:

Python实现获取Linux操作系统基础信息

Python实现获取Linux操作系统基础信息

以上结果经CentOS 7和CentOS 6测试没有问题,其它系统使用可能会出现一些IO错误

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网页题目:Python实现获取Linux操作系统基础信息-创新互联
标题链接:http://pwwzsj.com/article/csogid.html