This commit is contained in:
guange 2019-01-17 21:42:08 +08:00
parent 41e092becc
commit c9d1c11c16
2 changed files with 26 additions and 23 deletions

View File

@ -4,35 +4,38 @@ import subprocess
import re import re
def get_execute_out(cmd): def get_execute_out(cmd):
return subprocess.getoutput(cmd) return subprocess.getoutput(cmd)
def get_platform_info(): def get_platform_info():
if platform.system()=='Linux': if platform.system()=='Linux':
ls = get_execute_out('top -bn 1 -i -c') ls = get_execute_out('top -bn 1 -i -c')
infos = ls.split('\n') infos = ls.split('\n')
info = {}
info = {} m = re.match(r'top -.+?up\s+(.+?),', infos[0])
if m:
info["up_time"] = m.group(1)
m = re.match(r'top -.+?up\s+(.+?),', infos[0]) m = re.match(r'Tasks:\s+(.+?)\s+total', infos[1])
if m: if m:
info["up_time"] = m.group(1) info["tasks"] = m.group(1)
m = re.match(r'Tasks:\s+(.+?)\s+total', infos[1]) m = re.match(r'%Cpu\(s\):\s+(.+?)\s+us,\s+(.+?)\s+sy,.+?ni,\s+(.+?)\s+id,', infos[2])
if m: if m:
info["tasks"] = m.group(1) info["cpu_us"] = m.group(1)
info["cpu_sy"] = m.group(2)
info["cpu_id"] = m.group(3)
m = re.match(r'%Cpu\(s\):\s+(.+?)\s+us,\s+(.+?)\s+sy,.+?ni,\s+(.+?)\s+id,', infos[2]) m = re.match(r'KiB Mem : (\d+)\s+total,\s+(\d+)\s+free,\s+(\d+)\s+used,', infos[3])
if m: if m:
info["cpu_us"] = m.group(1) info["mem_total"] = m.group(1)
info["cpu_sy"] = m.group(2) info["mem_free"] = m.group(2)
info["cpu_id"] = m.group(3) info["mem_used"] = m.group(3)
m = re.match(r'KiB Mem : (\d+)\s+total,\s+(\d+)\s+free,\s+(\d+)\s+used,', infos[3]) return info
if m:
info["mem_total"] = m.group(1)
info["mem_free"] = m.group(2)
info["mem_used"] = m.group(3)
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'}
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())