python输出一些系统信息 进程内存前10名,CPU前10名信息等
来源:互联网 发布:安广网络 编辑:程序博客网 时间:2024/04/29 04:57
#!/usr/bin/python
#coding:utf-8
import base64;
import sys,os;
import subprocess;
import re;
import psutil;
import json;
import numpy;
def ooStructText(OoS) :
OoS = OoS.strip('\n');
OoS = re.sub(' +', ' ', OoS);
OoS2 = OoS.split('\n');
OoS2 = map(lambda x:x.strip(' '), OoS2);
OoS2 = map(lambda x:x.split(' '), OoS2);
return OoS2;
def ooGetShellOutput(OoComm) :
OoS = subprocess.Popen(OoComm, shell = True, stdout = subprocess.PIPE,
universal_newlines = True);
OoOutput = OoS.communicate();
OoOutput = OoOutput[0];
return OoOutput
def ooGetLoadAverage() :
OoComm = 'uptime | cut -d \' \' -f 14 | cut -d \',\' -f 1';
OoOutput = ooGetShellOutput(OoComm);
OoOutput = OoOutput.strip();
return OoOutput;
def ooGetDiskIoPer() :
# 取的是这个shell命令下半部分输出,最后一列最大值.
OoComm = 'iostat -x -d 1 2';
OoOutput = ooGetShellOutput(OoComm);
OoT1 = OoOutput.count('\n');
OoT2 = (OoT1 - 2)/2+3;
OoT3 = OoT1 - 1;
OoOutputT = ooStructText(OoOutput);
OoOutputT = OoOutputT[OoT2:OoT3];
OoOutputT = map(lambda x:x[13], OoOutputT);
OoOutputT = [[1], [2], [3]];
OoOutputT = map(lambda x:x[0], OoOutputT);
for OoX in OoOutputT :
OoOutputT[OoOutputT.index(OoX)] = float(OoX);
return max(OoOutputT);
def ooGetDmesg() :
# 取dmesg 输出中有error或segment的行。
OoComm = 'dmesg | grep \'error\\|segment\'';
OoOutput = ooGetShellOutput(OoComm);
OoOutput = OoOutput.strip();
OoOutput = OoOutput.split('\n');
return OoOutput;
def ooGetLinkNum() :
OoComm = 'netstat -nat | wc -l';
OoOutput = ooGetShellOutput(OoComm);
OoOutput = OoOutput.strip();
return OoOutput;
def ooSwapListEle(OoList, OoPosi1, OoPosi2) :
t = OoList[OoPosi1];
OoList[OoPosi1] = OoList[OoPosi2];
OoList[OoPosi2] = t;
return OoList;
def ooSort1(OoList) :
# 我会用list.sort 的key参数,和lambda后, 就不需要这样排了.
# 这个排序是为特定格式列表定做的。
# OoI = len(OoList) -1;
# while (OoI > 0) :
# OoI2 = 0;
# while OoI2 < OoI :
# x1 = OoList[OoI2];
# x2 = OoList[OoI2 + 1];
# if x1[1] < x2[1] :
# print('111\n');
# OoList = ooSwapListEle(OoList, OoI2, OoI2+1);
# OoI2 += 1;
# OoI -= 1;
# OoList = OoList[0:10];
return OoList;
def ooGetPidTop10() :
OoPids = psutil.pids();
OoS1 = [];
OoS2 = [];
for x in OoPids :
OoProcess = psutil.Process(x);
OoPidCpuPer = OoProcess.cpu_percent();
OoPidMemPer = OoProcess.memory_percent();
OoS1.append([x, OoPidCpuPer]);
OoS2.append([x, OoPidMemPer]);
#OoS1 = ooSort1(OoS1);
OoS1.sort(key = lambda x:x[1], reverse = True);
OoS1 = OoS1[0:9];
OoS2.sort(key = lambda x:x[1], reverse = True);
OoS2 = OoS2[0:9];
OoCpuTop10 = [];
OoMemTop10 = [];
for x in OoS1 :
OoCpuTop10.append(x[0]);
for x in OoS2 :
OoMemTop10.append(x[0]);
return OoCpuTop10, OoMemTop10;
def ooGetProcessInfo(OoPids) :
OoOutput = [];
for x in OoPids :
OoProcess = psutil.Process(x);
OoOutput.append({'pid': x,
'user': OoProcess.username(),
'command': base64.b64encode(OoProcess.name()),
'cpu_per': OoProcess.cpu_percent(),
'memory_per': OoProcess.memory_percent()});
return OoOutput;
def main() :
OoA = {'DiskIoPer': ooGetDiskIoPer()};
OoA.update({'LoadAverage': ooGetLoadAverage()});
OoA.update({'Dmesg': ooGetDmesg()});
OoA.update({'CpuPercent': psutil.cpu_percent()});
OoA.update({'LinkNum': ooGetLinkNum()});
OoProcCpuTop10, OoProcMemTop10 = ooGetPidTop10();
OoA.update({'ProcessCpuTop10': ooGetProcessInfo(OoProcCpuTop10)});
OoA.update({'ProcessMemTop10': ooGetProcessInfo(OoProcMemTop10)});
print(json.dumps(OoA, indent = 4));
if __name__ == '__main__' :
main();
#coding:utf-8
import base64;
import sys,os;
import subprocess;
import re;
import psutil;
import json;
import numpy;
def ooStructText(OoS) :
OoS = OoS.strip('\n');
OoS = re.sub(' +', ' ', OoS);
OoS2 = OoS.split('\n');
OoS2 = map(lambda x:x.strip(' '), OoS2);
OoS2 = map(lambda x:x.split(' '), OoS2);
return OoS2;
def ooGetShellOutput(OoComm) :
OoS = subprocess.Popen(OoComm, shell = True, stdout = subprocess.PIPE,
universal_newlines = True);
OoOutput = OoS.communicate();
OoOutput = OoOutput[0];
return OoOutput
def ooGetLoadAverage() :
OoComm = 'uptime | cut -d \' \' -f 14 | cut -d \',\' -f 1';
OoOutput = ooGetShellOutput(OoComm);
OoOutput = OoOutput.strip();
return OoOutput;
def ooGetDiskIoPer() :
# 取的是这个shell命令下半部分输出,最后一列最大值.
OoComm = 'iostat -x -d 1 2';
OoOutput = ooGetShellOutput(OoComm);
OoT1 = OoOutput.count('\n');
OoT2 = (OoT1 - 2)/2+3;
OoT3 = OoT1 - 1;
OoOutputT = ooStructText(OoOutput);
OoOutputT = OoOutputT[OoT2:OoT3];
OoOutputT = map(lambda x:x[13], OoOutputT);
OoOutputT = [[1], [2], [3]];
OoOutputT = map(lambda x:x[0], OoOutputT);
for OoX in OoOutputT :
OoOutputT[OoOutputT.index(OoX)] = float(OoX);
return max(OoOutputT);
def ooGetDmesg() :
# 取dmesg 输出中有error或segment的行。
OoComm = 'dmesg | grep \'error\\|segment\'';
OoOutput = ooGetShellOutput(OoComm);
OoOutput = OoOutput.strip();
OoOutput = OoOutput.split('\n');
return OoOutput;
def ooGetLinkNum() :
OoComm = 'netstat -nat | wc -l';
OoOutput = ooGetShellOutput(OoComm);
OoOutput = OoOutput.strip();
return OoOutput;
def ooSwapListEle(OoList, OoPosi1, OoPosi2) :
t = OoList[OoPosi1];
OoList[OoPosi1] = OoList[OoPosi2];
OoList[OoPosi2] = t;
return OoList;
def ooSort1(OoList) :
# 我会用list.sort 的key参数,和lambda后, 就不需要这样排了.
# 这个排序是为特定格式列表定做的。
# OoI = len(OoList) -1;
# while (OoI > 0) :
# OoI2 = 0;
# while OoI2 < OoI :
# x1 = OoList[OoI2];
# x2 = OoList[OoI2 + 1];
# if x1[1] < x2[1] :
# print('111\n');
# OoList = ooSwapListEle(OoList, OoI2, OoI2+1);
# OoI2 += 1;
# OoI -= 1;
# OoList = OoList[0:10];
return OoList;
def ooGetPidTop10() :
OoPids = psutil.pids();
OoS1 = [];
OoS2 = [];
for x in OoPids :
OoProcess = psutil.Process(x);
OoPidCpuPer = OoProcess.cpu_percent();
OoPidMemPer = OoProcess.memory_percent();
OoS1.append([x, OoPidCpuPer]);
OoS2.append([x, OoPidMemPer]);
#OoS1 = ooSort1(OoS1);
OoS1.sort(key = lambda x:x[1], reverse = True);
OoS1 = OoS1[0:9];
OoS2.sort(key = lambda x:x[1], reverse = True);
OoS2 = OoS2[0:9];
OoCpuTop10 = [];
OoMemTop10 = [];
for x in OoS1 :
OoCpuTop10.append(x[0]);
for x in OoS2 :
OoMemTop10.append(x[0]);
return OoCpuTop10, OoMemTop10;
def ooGetProcessInfo(OoPids) :
OoOutput = [];
for x in OoPids :
OoProcess = psutil.Process(x);
OoOutput.append({'pid': x,
'user': OoProcess.username(),
'command': base64.b64encode(OoProcess.name()),
'cpu_per': OoProcess.cpu_percent(),
'memory_per': OoProcess.memory_percent()});
return OoOutput;
def main() :
OoA = {'DiskIoPer': ooGetDiskIoPer()};
OoA.update({'LoadAverage': ooGetLoadAverage()});
OoA.update({'Dmesg': ooGetDmesg()});
OoA.update({'CpuPercent': psutil.cpu_percent()});
OoA.update({'LinkNum': ooGetLinkNum()});
OoProcCpuTop10, OoProcMemTop10 = ooGetPidTop10();
OoA.update({'ProcessCpuTop10': ooGetProcessInfo(OoProcCpuTop10)});
OoA.update({'ProcessMemTop10': ooGetProcessInfo(OoProcMemTop10)});
print(json.dumps(OoA, indent = 4));
if __name__ == '__main__' :
main();
0 0
- python输出一些系统信息 进程内存前10名,CPU前10名信息等
- 1674:前10名
- 前10名的书籍
- 算法提高 前10名
- AIX 查看CPU ,内存,系统等信息
- AIX 查看CPU ,内存,系统等信息
- 获取系统信息(CPU、内存等)
- python自动化运维学习------使用模块psutil获取系统cpu、内存、磁盘、网络、进程等信息
- Android获取系统cpu信息,内存,版本,电量等信息
- Android获取系统cpu信息,内存,版本,电量等信息
- Android获取系统cpu信息,内存,版本,电量等信息
- Android获取系统cpu信息,内存,版本,电量等信息
- 中国BBS社区前10名
- 中国BBS社区前10名
- 中国BBS社区前10名
- 算法提高 ADV-182 前10名
- Java获取系统信息(cpu,内存,硬盘,进程等)的相关方法
- Java获取系统信息(cpu,内存,硬盘,进程等)的相关方法
- java 自定义异常
- Hadoop的构造模块
- 四大组件之ContentProvider
- 高性能网络编程2----TCP消息的发送
- 什么是递归?——浅显易懂
- python输出一些系统信息 进程内存前10名,CPU前10名信息等
- 内部类与外部类的修饰符
- html&css总结
- 高性能网络编程3----TCP消息的接收
- 高性能网络编程4--TCP连接的关闭
- 欢迎使用CSDN-markdown编辑器
- ArrayList、LinkedList、Vector、HashSet、Treeset、HashMap、TreeMap的区别和适用场景
- 高性能网络编程5--IO复用与并发编程
- Vim杂记:Sublime的配色方案