0

我需要从我监控的几个 *nix 系统上的 top 命令中提取进程详细信息。所需的详细信息是用户名、执行的命令、PID、PPID、用户名和常驻内存消耗。

如果内存使用量大于阈值或命令非法,我需要通过username@company.com向用户发送警告

我正在编写一个脚本来在 python 中执行此操作,并通过执行“top -bc -n 1”和 grepping 命令关键字来获取所需的数据。但是,我还需要为非法进程提取用户名以发送邮件警告。

但是,top 会自动截断超过 8 个字符的用户名。如何检索完整的用户名?

4

2 回答 2

2

考虑使用ps代替,top因为我不知道为什么top会更好地完成这项任务。ps您可以比一个更灵活地配置输出top

于 2013-02-27T11:38:27.963 回答
0

使用用户 id,然后解析它以获取用户名:

getent passwd | grep <UID> | awk -F: '{ print $1; }'

那,正如@wRAR 所说,使用ps而不是top.

于 2013-02-27T11:39:48.410 回答