利用Mailgun监控服务器并发送邮件通知
1.首先要注册mailgun,然后绑定域名到mailgun。。自行baidu、google
2.bash脚本 vim server-status.sh,输入以下代码 (服务器要安装curl)
#/bin/bash
#配置节点IP
US=69.20.56.211
RU=184.179.92.6
JP=213.144.213.8
#配置节点对应数组用于输出显示
AREAS=($US $RU $JP)
NAME=(美国 俄罗斯 日本)
#NUM_OF_AREAS根据节点数修改
NUM_OF_AREAS=3
#maigun 参数配置
APIKEY=api:key-********************************
DOMAIN=abc.com
#显示在邮件中的发送者
TITLE='Postmaster<postmaster@abc.com>'
#要发送的目标
TMAIL='xxx@gmail.com'
sendmail(){
for ((I=0; I<$NUM_OF_AREAS; ++I)) do
ping -c 5 -w 5 ${AREAS[I]} >/dev/null 2>&1
status=$?
if [ $status != 0 ]; then
if [ ! -e /tmp/sendmailtmp${AREAS[I]} ]; then
#调用mailgun API接口发送邮件
curl -s --user "$APIKEY" https://api.mailgun.net/v3/$DOMAIN/messages -F from="$TITLE" -F to="$TMAIL" -F subject="${NAME[I]} 掉线警告!" -F text="你的服务器-${NAME[I]} 掉线了,请尽快查看处理吧!" && echo "${AREAS[I]}" > /tmp/sendmailtmp${AREAS[I]}
fi
else
if [ -e /tmp/sendmailtmp${AREAS[I]} ]; then
rm /tmp/sendmailtmp${AREAS[I]}
fi
fi
done
}
sendmail;
3.添加执行权限,crontab 添加定时任务,定期执行
chmod +x server-status.sh
*/3 * * * * ./root/server-status.sh