我想在文件中打印一個進程的CPU使用率(頂部命令)+該頂部命令獲取信息的日期,每0.5秒(每個與日期+這款CPU信息)線 如果我在一個shell腳本寫,我會做類似shell腳本:頂部命令和日期命令一次
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的信息迭代是"from system boot until now",所以我需要其他迭代。
因此,我正在尋找一些命令組合來獲取頂部命令+日期(納秒)(日期+%s。%N)的進程信息(頂部命令還會在第一行頭,但我希望毫秒)
我想是這樣,
echo $(date +%s.%N) $(top -d 0.5 -n 100 -p myProcessPID | grep myProcessName) >> results.txt
但日期只印在第一次迭代。
任何想法?
很抱歉,如果我不是非常準確的這樣一個問題,我是新這個腳本,並寫在這裏..
如果您要求'top'在內部執行迭代,那麼在單次運行過程中,當然也只有一次'date'運行。 –
除非你有特定的原因,否則不要重新發明輪子 - 例如使用['dstat'](http://dag.wiee.rs/home-made/dstat/)。 –
作爲moreutils的一部分的時間戳輸入'ts'工具對此很有效。 – Zlemini