如何检查顶级进程?

我正在寻找shell脚本来发送顶级进程作为电子邮件时,监视CPU的平均负载超过20我正在运行RedHat 6。

uptime | awk '$NF >= 20 { system("top -cSb n 1") }' \ | tail -n +8 | sort -rn -k11 | head \ | mail -s "PROBLEM Service Alert: load_fifteen is CRITICAL" email@domain 
  • NF代表字段数。 $NF获得最后一个字段的值。 这是过去15分钟的系统平均负载
  • top -b以批处理模式运行,用于将输出发送到stdout
  • tail -n +8 | sort -rn -k11 | head tail -n +8 | sort -rn -k11 | head :删除标题,然后按CPU时间sorting,并获得最高的进程。