微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

linux-如何在文件中捕获top命令的输出(对于将要终止的特定进程)

我有一个正在监视的进程MYPID = 18686.

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 举报,一经查实,本站将立刻删除。

相关推荐