使用 bash shell 输出高 CPU 进程

使用 bash shell 输出高 CPU 进程

我正在尝试使用 top 命令监控我的 CentOS 进程,以查看是否有任何进程的 CPU 使用率大于 X%,下面是我用来查看是否有任何进程的 CPU 使用率大于 10% 的命令。

top | awk '{if (NF == 14) {
  if ( int($10) >= 10 ) { print $0; system("ps -ef | grep " $13); }
}}' >> top.txt

上面的命令似乎会遗漏一些结果。在上述命令运行时,我打开另一个会话并执行 top 命令。我注意到有时我看到某些进程的 CPU 使用率大于 10%,但上述命令无法捕获结果。

不确定是否有更好的方法,或者我上面的脚本是错误的。

非常感谢!

答案1

top命令不是解析数据的最佳选择。请尝试使用sar(如果未默认安装,请运行yum install sysstat)或iostat -c

相关内容