15秒ごとにPIDとそのコマンドを記録する方法は?

15秒ごとにPIDとそのコマンドを記録する方法は?

トラブルシューティングのために、15秒ごとにPIDとそのコマンドを記録し、それをテキストファイルに書きたいと思います。

希望の出力:タイムスタンプ、PID、コマンド

答え1

これにより、必要な3つの列が提供されます。

$ ps -hopid,comm | perl -anle'print time, ", $F[0], $F[1]"'
1541626566, 6496, gedit
1541626566, 7513, bash

範囲を制限または拡張できますps。どのプロセスがリストされています。次に、リダイレクトを使用してループに入れます。

while true; do echo x; sleep 15; done > out

選択したecho x正しいコマンドとファイル名に置き換えてください。out

情報を生成するコマンドの概要は次のとおりです。

  • ps -hopid,commps- 明らかに-hヘッダーラインを閉じて-o出力(PIDとコマンド)を示します。
  • これはPerlコマンドperl -anle'print time, ", $F[0], $F[1]"'Perlに移動しますperl-anleしたがって、これらのフラグは次のことを意味します。a- 入力を配列にロードし、n- 新しい行を処理し、l- 各行を処理し、最後にe- 隠しコードを実行します。
  • これでコードは次のようになります'print time, ", $F[0], $F[1]"'。最初にタイムスタンプが印刷され、次に入力データを含む配列の最初の列、2番目の列が印刷されます。

関連情報