プロセスの 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
ただし、日付は最初の反復でのみ印刷されます。
何か案は?
質問が正確でない場合は申し訳ありませんが、私はこのスクリプトとここに書いているのは初めてです..