我正在寻找 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
以批处理模式运行,将输出发送到 stdouttail -n +8 | sort -rn -k11 | head
:删除标题,然后按 CPU 时间排序,并获取顶级进程。