我正在做我自己的项目。其中必须执行这些步骤:连接到远程服务器。每天在某个特定时间(例如 4'0 时钟)获取远程服务器上每个正在运行的进程的 pid、进程名称、cpu 使用情况、交换内存使用情况。我必须将每天的结果与前一天的结果进行比较(例如 day1-pid 与 day2 pid 和 day1 进程名称与 day2 进程名称等)到目前为止,我已经完成了第 2 步。现在我想知道如何从远程服务器提取 pid、进程名称、cpu 使用情况、交换内存使用情况并将其存储在某个可迭代变量中。以便我可以比较它以检查内存峰值?除了我的想法之外的任何其他方式都将是可观的。
2 回答
白衣非少年
TA贡献1155条经验 获得超0个赞
您ShellHandler的execute方法返回三个项目,其中第一个是您发送给它的输入。
无论如何,您可能应该像这样直接调用它:
obj = ShellHandler('Servername','username','password')
in, out, err = obj.execute("ps -eo pid,lstart,%mem,%cpu,cmd")
for line in out.split('\n'):
pid, lstartwd, lstartmo, lstartdd, lstartm, lstartyy, mem, cpu, cmd = line.split(None, 8)
我cmd最后移动是因为它可能包含空格。该lstart值还包含多个以空格分隔的字段。以下是 Debian 中的输出:
19626 Tue Jan 15 15:03:57 2019 0.0 0.0 less filename
关于如何ps更详细地解析输出有很多问题;我会向您推荐他们以弄清楚如何split准确处理结果。
添加回答
举报
0/150
提交
取消