1

プロセスの CPU 使用率 (top コマンド) + この top コマンドが情報を取得した日付を、0.5 秒ごと (日付の各行 + この cpu 情報) にファイルに出力したいと思います。シェルスクリプト、私は次のようなことをします

while [ ! -f $STOP_FILE ]
do
echo "$(date +%s.%N)" >> $REPORT_FILE
top -b -n 1 -p myProcessPID | grep myProcessName | awk -F " " '{print $12 "\t" $9}' >> result.txt
sleep 0.5
done

しかし、最初の繰り返しは「システムの起動から今まで」であるため、トップで -n 1 オプションを使用して CPU 情報を取得することはできません。そのため、他の繰り返しが必要です。

したがって、top コマンド + ナノ秒の日付 (date +%s.%N) でプロセス情報を取得するコマンドの組み合わせを探しています (top コマンドでもヘッダーの最初の行に時刻が表示されますが、ミリ秒が欲しい)

私は次のようなことを試みています、

echo $(date +%s.%N) $(top -d 0.5 -n 100 -p myProcessPID | grep myProcessName) >> results.txt

ただし、日付は最初の反復でのみ印刷されます。

何か案は?

質問が正確でない場合は申し訳ありませんが、私はこのスクリプトとここに書いているのは初めてです..

4

1 に答える 1