如何获取与特定模式匹配的长时间运行进程的列表?

Row*_*haw 8 linux ps centos

我知道我可以ps aux | grep cgi获取当前正在运行的所有 cgi 脚本的列表,并且ps -p [pid] -o etime=可以获得每个 pid 的运行时间;有没有办法将两者结合起来,或者更好的是,只返回那些已经运行“太长时间”(比如 45 秒)的方法?

理想情况下,我正在寻找可以放入 perl 脚本的东西,该脚本可以查找问题,将详细信息通过电子邮件发送给我,并“为了安全”主动终止进程。将输出从一个中捆绑出来,然后遍历结果会更好吗?

use*_*723 13

我过去做过类似的事情。

ps -A -o etime,pid,user,args| grep init
Run Code Online (Sandbox Code Playgroud)

返回

180-04:55:20    1 root     init [5]
Run Code Online (Sandbox Code Playgroud)

这在 perl 中很容易解析。我使用 split 和 pop 来解析它。

格式为 [[dd-]hh:]mm:ss