行数与top命令

时间:2015-12-15 12:06:00

标签: bash grep wc

我需要找到使用与特定模式匹配的命令名运行的进程数。我需要定期检查进程数。

我使用命令模式greting top命令的输出,并尝试每次都找到进程数。

以下将(例如)grep与命令模式匹配的所有进程并动态打印出来。

top -bcd 1 | grep worker | grep apache

现在代替列表,我只需要动态打印出来的进程数。 我尝试了以下对我不起作用。

top -bcd 1 | grep worker | grep apache | wc -l

top -bcd 1 | grep worker | grep -c apache

如果有完全不同且更好的方法,请告诉我。

2 个答案:

答案 0 :(得分:1)

就您问题中的原始问题而言,即检查名称与给定模式匹配的流程数量时,我建议将pgrepwatch一起使用:

watch pgrep apache

您应该能够使用标准重定向> out将其直接输出到日志文件中。如果这不起作用,你总是可以使用自己的循环来做类似的事情:

while true; do
    pgrep apache
    sleep 2
done > out

答案 1 :(得分:1)

如果你没有pgrep,总有办法用linux上的POSIX工具产生这个结果。

while true; do
  awk '$0~"^"re{a++};END{print a}' re=apache /proc/[0-9]*/cmdline
  sleep 2
done