53 lines
1.6 KiB
Python
53 lines
1.6 KiB
Python
#coding=utf-8
|
|
import platform
|
|
import subprocess
|
|
import re
|
|
|
|
def get_execute_out(cmd):
|
|
return subprocess.getoutput(cmd)
|
|
|
|
def get_platform_info():
|
|
if platform.system()=='Linux':
|
|
ls = get_execute_out('top -bn 1 -i -c')
|
|
infos = ls.split('\n')
|
|
|
|
info = {}
|
|
|
|
m = re.match(r'top -.+?up\s+(.+?),', infos[0])
|
|
if m:
|
|
info["up_time"] = m.group(1)
|
|
|
|
m = re.match(r'Tasks:\s+(.+?)\s+total', infos[1])
|
|
if m:
|
|
info["tasks"] = m.group(1)
|
|
|
|
m = re.match(r'%Cpu\(s\):\s+(.+?)\s+us,\s+(.+?)\s+sy,.+?ni,\s+(.+?)\s+id,', infos[2])
|
|
if not m:
|
|
m = re.match(r'Cpu\(s\):\s+(.+?)%us,\s+(.+?)%sy,.+?ni,\s+(.+?)%id,', infos[2])
|
|
if m:
|
|
info["cpu_us"] = m.group(1)
|
|
info["cpu_sy"] = m.group(2)
|
|
info["cpu_id"] = m.group(3)
|
|
|
|
m = re.match(r'KiB Mem : (\d+)\s+total,\s+(\d+)\s+free,\s+(\d+)\s+used,', infos[3])
|
|
if not m:
|
|
m = re.match(r'Mem:\s+(\d+)k\s+total,\s+(\d+)k\s+used,\s+(\d+)k\s+free,', infos[3])
|
|
if m:
|
|
info["mem_total"] = m.group(1)
|
|
info["mem_free"] = m.group(2)
|
|
info["mem_used"] = m.group(3)
|
|
|
|
#硬盘使用
|
|
out = get_execute_out('df -h')
|
|
m = re.findall(r'\/dev\/vda1\s+(.+?)G\s+(.+?)G\s+(.+?)G', out)
|
|
if len(m)>0:
|
|
info['disk_total'] = m[0][0]
|
|
info['disk_used'] = m[0][1]
|
|
info['disk_freed'] = m[0][2]
|
|
|
|
return info
|
|
|
|
return {'up_time': '20:52', 'tasks': '127', 'cpu_us': '1.6', 'cpu_sy': '1.6', 'cpu_id': '96.9', 'mem_total': '12134268', 'mem_free': '5648868', 'mem_used': '4537556'}
|
|
|
|
if __name__ == "__main__":
|
|
print(get_platform_info()) |