linux top命令是否有一个选项,我可以按名称过滤进程并将该进程的CPU使用率每1秒写入日志文件?
top
和 pgrep
要按top
进程名称过滤输出,可以使用按进程名称pgrep
获取PID的列表,然后将其传递给-p
选项top
。
例如:
top -p $(pgrep -d',' http)
注意:该-d','
选项用逗号分隔PID,这是期望的top -p
。注意2:top
如果没有与您在中指定的名称匹配的正在运行的进程,则将返回失败消息pgrep
。
要将的结果写入top
文件,请使用-n 1
选项(仅一次迭代),然后将输出重定向到日志文件。
top -p $(pgrep -d',' http) -n 1 >> your_log_file
要每秒这样做一次,也许用a while
循环sleep
就可以了?
while :; do top -p $(pgrep -d',' http) -n 1 >> your_log_file; sleep 1; done
要为每个条目添加时间戳,您可以附加的输出date
。例如
while :; do top -p $(pgrep -d',' http) -n 1 >> log.txt; date >> log.txt; sleep 1; done
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句