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

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

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

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

答案1

我过去也做过类似的事情。

ps -A -o etime,pid,user,args| grep init

回报

180-04:55:20    1 root     init [5]

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

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

答案2

相反,你可以运行监控,这已经是为此设计的。

相关内容