top -b -n 1000 -d 5 -p $MYPID | tail -1 > log.txt
我的最终目标是仅记录该过程生命周期内的cpu使用情况.指定-n 1000 -d 5是一种廉价的解决方法,可以在进程的预期寿命内运行.尾号-1是为了消除连续记录顶部标题的情况.
这个问题的答案是有帮助的,但不是解决方案.
How to capture the output of a top command in a file in linux?
解决方法:
tail -1不产生top产生的每个输出屏幕的最后一行.它仅产生所有行的最后一行.
尝试:
top -b -n 1000 -d 5 -p "$MYPID" | grep "$MYPID" > log.txt
这会将所有提及PID的行收集到log.txt中,但没有标头(假设PID没有出现在标头上).
注意,grep通常是缓冲的.这意味着,如果您在运行期间检查log.txt,它可能已过期.使用GNU grep,您可以使用–line-buffered选项使log.txt保持最新:
top -b -n 1000 -d 5 -p "$MYPID" | grep --line-buffered "$MYPID" > log.txt
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。