def run(self, *unused):
systeminfo = {}
cpu = {}
if(os.path.isfile("/proc/cpuinfo")):
f = open('/proc/cpuinfo')
if f:
for line in f:
# Ignore the blank line separating the information between
# details about two processing units
if line.strip():
if "model name" == line.rstrip('\n').split(':')[0].strip():
cpu['brand'] = line.rstrip('\n').split(':')[1].strip()
if "Processor" == line.rstrip('\n').split(':')[0].strip():
cpu['brand'] = line.rstrip('\n').split(':')[1].strip()
if "processor" == line.rstrip('\n').split(':')[0].strip():
cpu['count'] = line.rstrip('\n').split(':')[1].strip()
else:
cpu['brand'] = "Unknown CPU"
cpu['count'] = 0
mem = psutil.virtual_memory()
if sys.platform == "linux" or sys.platform == "linux2":
systeminfo['os'] = str(' '.join(platform.linux_distribution()))
elif sys.platform == "darwin":
systeminfo['os'] = "Mac OS %s" % platform.mac_ver()[0]
cpu['brand'] = str(systemCommand('sysctl machdep.cpu.brand_string', False)[0]).split(': ')[1]
cpu['count'] = systemCommand('sysctl hw.ncpu')
elif sys.platform == "freebsd10" or sys.platform == "freebsd11":
systeminfo['os'] = "FreeBSD %s" % platform.release()
cpu['brand'] = str(systemCommand('sysctl hw.model', False)[0]).split(': ')[1]
cpu['count'] = systemCommand('sysctl hw.ncpu')
elif sys.platform == "win32":
systeminfo['os'] = "{} {}".format(platform.uname()[0], platform.uname()[2])
systeminfo['cpu'] = cpu['brand']
systeminfo['cores'] = cpu['count']
systeminfo['memory'] = mem.total
systeminfo['psutil'] = '.'.join(map(str, psutil.version_info))
systeminfo['platform'] = platform.platform()
systeminfo['uptime'] = int(time.time()-psutil.boot_time())
systeminfo['ip_addresses'] = ip_addresses()
return systeminfo
评论列表
文章目录