linux – 按进程名称和日志CPU使用率过滤

linux top命令有一个选项,我可以按名称过滤进程,并将该进程的CPU使用率每1秒写入一个日志文件?
要过滤top by process name的输出,可以使用pgrep按进程名称获取PID列表,然后将它们传递给top的-p选项。例如:

top -p $(pgrep -d',' http)

注意:-d’,’选项用逗号分隔PID,这是top -p期望的。

要将top的结果写入文件,请使用-n 1选项(仅一次迭代),并将输出重定向到日志文件。

top -p $(pgrep -d',' http) -n 1 >> your_log_file

要做到这一点每一秒,也许一个while循环与睡眠会吗?

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
翻译自:https://stackoverflow.com/questions/8710584/filter-by-process-name-and-log-cpu-usage

转载注明原文:linux – 按进程名称和日志CPU使用率过滤