如何检查顶级进程?

如何检查顶级进程?

我正在寻找 shell 脚本,当监控 CPU 平均负载超过 20 时,以电子邮件的形式发送顶级进程,我正在运行 RedHat 6。

答案1

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:删除标题,然后按 CPU 时间排序,并获取顶级进程。

相关内容