我想要一种简单的方法来监视与某些关键字匹配的进程的资源使用情况。
所以我做了类似的事情:
ps -aux | grep XX | awk 'FNR == 2 {print $2}' | xargs -o -I {} top -p {}
(pgrep
在我的情况下不起作用)
这使我能够获取输出第二行的 PIDps
并将其传递给top
.我只能监控一以这种方式进行处理。
但是假设有很多行与搜索词匹配,并且我想使用 来监视所有行top
。
因此该awk
命令将是公正的{print $2}
,它将输出多行,每行都有 1 个 PID。
我想要有类似的东西top -p PID1 -p PID2 ...
我如何将所有这些 PID 传递给top
via xargs
(或其他简单的方法)?
答案1
我思考这就是你所要求的:
ps -aux | awk 'BEGIN{printf "top "} /XX/{printf "-p %s ",$2}END{print ""}'|xargs -o -I {} bash -c "{}"