使用 top 命令的行数
Line count with top command
我需要找到 运行 命令名称与特定模式匹配的进程数。我需要定期检查进程数。
我正在使用命令模式对 top 命令的输出进行 grep,并尝试每次查找进程数。
以下将(例如)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
如果有完全不同的更好的方法,也请告诉我。
就您问题中的原始问题而言,即检查名称与给定模式匹配的进程数,我建议使用 pgrep
和 watch
:
watch pgrep apache
您应该能够使用标准重定向将其直接输出到日志文件 > out
。如果这不起作用,您可以随时滚动自己的循环来做类似的事情:
while true; do
pgrep apache
sleep 2
done > out
如果您没有 pgrep
,总有办法在 linux.
上使用 POSIX 工具生成此结果
while true; do
awk '[=10=]~"^"re{a++};END{print a}' re=apache /proc/[0-9]*/cmdline
sleep 2
done
我需要找到 运行 命令名称与特定模式匹配的进程数。我需要定期检查进程数。
我正在使用命令模式对 top 命令的输出进行 grep,并尝试每次查找进程数。
以下将(例如)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
如果有完全不同的更好的方法,也请告诉我。
就您问题中的原始问题而言,即检查名称与给定模式匹配的进程数,我建议使用 pgrep
和 watch
:
watch pgrep apache
您应该能够使用标准重定向将其直接输出到日志文件 > out
。如果这不起作用,您可以随时滚动自己的循环来做类似的事情:
while true; do
pgrep apache
sleep 2
done > out
如果您没有 pgrep
,总有办法在 linux.
while true; do
awk '[=10=]~"^"re{a++};END{print a}' re=apache /proc/[0-9]*/cmdline
sleep 2
done