为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

倚天杖 2021-11-09 10:57:54
我正在做我自己的项目。其中必须执行这些步骤:连接到远程服务器。每天在某个特定时间(例如 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准确处理结果。


查看完整回答
反对 回复 2021-11-09
?
小唯快跑啊

TA贡献1863条经验 获得超2个赞

ps aux 命令应该包含您需要的所有信息(pid、进程名称、cpu、内存)


查看完整回答
反对 回复 2021-11-09
  • 2 回答
  • 0 关注
  • 198 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信