我需要在我监控的几个* nix系统上从top命令中提取进程详细信息。所需的详细信息包括用户名,执行的命令,PID,PPID,用户名和常驻内存消耗。
如果内存使用量大于阈值或命令是非法的,我需要通过 username@company.com
向用户发送警告我正在编写一个脚本来在python中执行此操作,并通过执行'top -bc -n 1'和grepping for command关键字来获取所需的数据。但是,我还需要为非法进程提取用户名以发送邮件警告。
但是,top会自动截断大于8个字符的用户名。如何检索完整的用户名?
答案 0 :(得分:2)
考虑使用ps
代替top
,因为我不知道为什么top
会更好地完成此任务。您可以比ps
更灵活地配置top
输出。
答案 1 :(得分:0)
使用用户ID,然后解析它以获取用户名:
getent passwd | grep <UID> | awk -F: '{ print $1; }'
那就像@wRAR所说的那样,使用ps
代替top
。