利用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

4.有问题大家请向我反馈。

最后修改:2018 年 05 月 24 日
如果觉得我的文章对你有用,请随意赞赏