📅  最后修改于: 2023-12-03 15:32:42.515000             🧑  作者: Mango
当 Linux 服务器负载过高时,可能会影响其正常运行,进而导致服务中断或系统崩溃。针对这种情况,可以通过编写 Shell-Bash 脚本来监控服务器负载,当负载超过一定阈值时,自动发送邮件通知相关操作人员。
uptime
命令获取当前服务器负载。mail
命令发送邮件。#!/bin/bash
# 获取当前服务器负载,取最近 1 分钟的平均值
loadAvg=`uptime | awk '{print $(NF-2)}' | sed 's/,//'`
# 定义阈值,当负载超过阈值时,触发邮件发送
threshold=2.0
if [[ `echo "${loadAvg} >= ${threshold}" | bc` -eq 1 ]] ; then
# 当前负载大于等于阈值,发送邮件
echo "Subject: Server load is high" | /usr/sbin/sendmail -v example@example.com
fi
以上脚本获取当前服务器负载的平均值,并通过比较阈值,判断是否触发邮件发送。如果当前负载超过阈值,则发送邮件给 example@example.com
。
$
符号需要转义,否则可能会与 markdown 语法冲突。sendmail
命令可以正常使用。mail
命令发送邮件时,需要注意邮件的格式,例如邮件标题需要以 Subject:
开头。以上是 Linux 高负载发送邮件的 Shell-Bash 实现方法。通过这种方式,可以方便地监控服务器负载,并及时采取措施避免服务器宕机。