使用 python 代码收集主机的系统信息,主要:主机名称、IP、系统版本、服务器厂商、型号、序列号、cpu信息、内存等系统信息。
#!/usr/bin/env python#enCoding: utf-8'''收集主机的信息:主机名称、IP、系统版本、服务器厂商、型号、序列号、cpu信息、内存信息'''from subprocess import Popen,PIPE os,sys 获取 ifconfig 命令的输出 '''def getIfconfig(): p = Popen(['ifconfig'],stdout = PIPE) data = p.stdout.read() return data 获取 dmIDecode 命令的输出 getDmi(): p = Popen([dmIDecode 根据空行分段落 返回段落列表 parseData(data): parsed_data = [] new_line = '' data = [i for i in data.split(\n') if i] for line in data: line[0].strip(): parsed_data.append(new_line) new_line = line + ' else: new_line += line + ' parsed_data.append(new_line) return [i in parsed_data i] 根据输入的段落数据分析出ifconfig的每个网卡ip信息 parseIfconfig(parsed_data): dic = {} parsed_data = [i if not i.startswith(lo)] for lines parsed_data: line_List = lines.split() devname = line_List[0].split()[0] macaddr = line_List[0].split()[-1] ipaddr = line_List[1].split()[1].split(:')[1] break dic[ip'] = ipaddr dic 根据输入的dmi段落数据 分析出指定参数 parseDmi(parsed_data): dic =if i.startswith(System information)] parsed_data = [i in parsed_data[0].split(')[1:] i] dmi_dic = dict([i.strip().split( parsed_data]) dic[vender'] = dmi_dic[Manufacturer].strip() dic[productProduct namesnSerial Number].strip() 获取linux系统主机名称 getHostname(): with open(/etc/sysconfig/network) as fd: fd: if line.startswith(HOSTname): hostname = line.split(=].strip() break return {hostname:hostname} 获取linux系统的版本信息 getosversion(): with open(/etc/issue fd: osver = line.strip() osver:osver} 获取cpu的型号和cpu的核心数 getcpu(): num = 0 with open(/proc/cpuinfoprocessor): num += 1 model name): cpu_model = line.split(].strip().split() cpu_model = cpu_model[0] + ' ' + cpu_model[2] + ' + cpu_model[-1] cpu_num':num,cpu_model:cpu_model} 获取linux系统的总物理内存 getMemory(): with open(/proc/meminfoMemTotal): mem = int(line.split()[1].strip()) mem = %.f' % (mem / 1024.0) + MB' Memory:mem}if __name__ == __main__: dic = {} data_ip = getIfconfig() parsed_data_ip = parseData(data_ip) ip = parseIfconfig(parsed_data_ip) data_dmi = getDmi() parsed_data_dmi = parseData(data_dmi) dmi = parseDmi(parsed_data_dmi) hostname = getHostname() osver = getosversion() cpu = getcpu() mem = getMemory() dic.update(ip) dic.update(dmi) dic.update(hostname) dic.update(osver) dic.update(cpu) dic.update(mem) 将获取到的所有数据信息并按简单格式对齐显示 ''' for k,v dic.items(): print %-10s:%s' % (k,v)
实验测试结果:
product :VMware Virtual Platformosver :CentOS release 6.4 (Final)sn :VMware-56 4d b4 6c 05 e5 20 dc-c6 49 0c e1 e0 18 1c 75Memory :1870 MBcpu_num :2ip :192.168.0.8vender :VMware,Inc.hostname :vipcpu_model :Intel(R) i7-4710MQ 2.50GHz
总结
以上是内存溢出为你收集整理的使用 python 收集获取 Linux 系统主机信息全部内容,希望文章能够帮你解决使用 python 收集获取 Linux 系统主机信息所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)