如何在* nix的'top'命令输出中获取完整的用户名?

时间:2013-02-27 11:29:43

标签: python unix username

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

如果内存使用量大于阈值或命令是非法的,我需要通过 username@company.com

向用户发送警告

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

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

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

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

那就像@wRAR所说的那样,使用ps代替top