猿问

Python,Shell:如何提取数据并存储在可迭代变量中(特别是在列表中)?

我正在做我自己的项目。其中必须执行这些步骤:

  1. 连接到远程服务器。

  2. 每天在某个特定时间(例如 4'0 时钟)获取远程服务器上每个正在运行的进程的 pid、进程名称、cpu 使用情况、交换内存使用情况。

  3. 我必须将每天的结果与前一天的结果进行比较(例如 day1-pid 与 day2 pid 和 day1 进程名称与 day2 进程名称等)

到目前为止,我已经完成了第 2 步。现在我想知道如何从远程服务器提取 pid、进程名称、cpu 使用情况、交换内存使用情况并将其存储在某个可迭代变量中。以便我可以比较它以检查内存峰值?除了我的想法之外的任何其他方式都将是可观的。


倚天杖
浏览 199回答 2
2回答

白衣非少年

您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准确处理结果。

小唯快跑啊

ps aux 命令应该包含您需要的所有信息(pid、进程名称、cpu、内存)
随时随地看视频慕课网APP

相关分类

Python
我要回答