我想在文件中打印一个进程的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