特定のパターンに一致する長期実行プロセスのリストをどのように取得できますか?

特定のパターンに一致する長期実行プロセスのリストをどのように取得できますか?

ps aux | grep cgi現在実行中のすべてのcgiスクリプトのリストを取得し、各pidの実行時間を取得できることを知っていますps -p [pid] -o etime=。 2つを組み合わせる方法はありますか?または、「長すぎる」実行されているスクリプトのみを返すことをお勧めします。たとえば、45秒)?

理想的には、問題を探して、詳細を電子メールで送信し、「安全のために」プロセスを積極的に終了できるPerlスクリプトに入れることができるものを探しています。 aの出力を束ねてから結果を繰り返す方がいいですか?

答え1

私は過去にも同様のことをしました。

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

返品

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

これはPerlで解析するのは簡単です。私はそれを分析するために分割とポップを使用します。

形式は[[dd-]hh:]mm:ssです。

答え2

代わりに、実行することができます監視装置、これはすでにこの目的のために設計されています。

関連情報