Linux ping命令实现网络监控 并邮件提醒管理员

描述:

    Linux服务器,编写shell脚本,利用ping命令实现网络监控,判断网络是否连通,是否正常,并及时发邮件通知管理员。
    应用:监控服务器网络是否连通;监控两地网络是否连通等等。
    只需要安装mutt邮件插件,一个简单而强大的邮件插件,用于给管理员发送邮件而不需要邮件服务器。
    用最简单的命令实现强大的功能,使用脚本自动化管理。

工具/原料:
原系统命令,再加安装一个邮件发送插件mutt(各位可以去查一下mutt简单而强大的魅力)

方法/步骤:
    1.
    安装mutt:yum install mutt

    新建mutt配置文件:vim /root/.muttrc,添加如下内容:

#如果你收到的邮件乱码,设置以下信息       

    set charset="utf-8"       

    set rfc2047_parameters=yes      

    #如果你想自定义发件人信息,需要进行如下设置       

    set envelope_from=yes      

    set use_from=yes       

    set from=root@163.com       

    set realname="Andy"


    测试:
    举例,shell脚本自动给我自己的QQ邮箱发送mail:
    Vim  /root/mutt.sh添加内容如下:

#!/bin/bash
echo  'test1111'  |  mutt  695xxx@qq.com  -s  "这是标题"


       

        执行脚本,然后登录到指定的邮箱里去查看。(没有看到你发送的邮件吧。。。)你发送的邮件被默认为垃圾邮件了。要在QQ邮箱中设置白名单通过验证。(已删除-->删信记录查询-->收信查询-->添加到白名单-->取回)。

        收件成功!!!

2.
开始编辑shell脚本:
vim /root/ping.sh,代码如下:

#!/bin/bash
#执行脚本:(/root/ping.sh &)
server1=192.168.180.100
server2=192.168.180.111
mail1=695xxxxxx@qq.com
mail2=530xxxxxx@qq.com
mail3=596xxxxxx@qq.com
mail4=362xxxxxx@qq.com
LOG=/var/shell/ping/ping.log
b=0    #初始赋值为0,刚启动脚本时测试到网络正常则不提示,解决每次启动脚本时都提示网络正常的问题(设置为其他值则每次启动脚本时都提示)。
while [ true ]
        do
ping -w 5 $server1 | grep 'icmp_seq' > $file1 \
&& ping -w 5 $server2 | grep 'icmp_seq' > $file2 #检测误报情况! 
[ `grep 'time=' $file1 | wc -l` -ge 1 ] > /dev/null \
&& [ `grep 'time=' $file2 | wc -l` -ge 1 ] > /dev/null
                a=$?
                if [ $a -ne 0 ]    #判断执行上面ping命令是否正常,为0则网络正常,否则提示网络中断。
                        then
                        if [ $a -ne $b ]    #解决网络中断时一直提示的问题。
                                then
                                b=$a    #给予下次判断网络是否正常。
                                date >> $LOG
                                echo "$server1 路由表:" >> $LOG
                                traceroute -n -m 10 $server1 >> $LOG \
                                && echo '-------------------------------------------------' >> $LOG \
                                && echo "$server2 路由表:" >> $LOG \
                                && traceroute -n -m 10 $server2 >> $LOG \
                                && echo '#################################################' >> $LOG \
                                && echo '' >> $LOG
                                echo '' >> $LOG
                                tail -30 $LOG > /var/shell/ping/ping.txt
                                echo '警报警报:广州安心通网络中断!!' | mutt $mail1 $mail2 -s '网络中断' -a /var/shell/ping/ping.txt
                        fi
                else
                        if [ $a -ne $b ]    #解决网络正常时一直提示的问题。
                                then
                                b=$a    #给予下次判断网络是否正常。
                                date >> $LOG
                                echo "$server1 路由表:" >> $LOG
                                traceroute -n -m 10 $server1 >> $LOG \
                                && echo '-------------------------------------------------' >> $LOG \
                                && echo "$server2 路由表:" >> $LOG \
                                && traceroute -n -m 10 $server2 >> $LOG \
                                && echo '#################################################' >> $LOG \
                                && echo '' >> $LOG
                                echo '' >> $LOG
                                tail -30 $LOG > /var/shell/ping/ping.txt
                                echo '通知:广州安心通网络恢复正常!!' | mutt $mail1 $mail2 -s '网络正常' -a /var/shell/ping/ping.txt
                        fi
                fi
done


3.
执行脚本:sh /root/ping.sh &
并添加到开机启动项即可实现时时监控。

4.
测试:去邮箱查看是否收到邮件。
就这样,轻松监控服务器网络。

注意事项
    mutt发送邮件,QQ接收会被黑名单拦截,一定要添加白名单哦,要测试成功可以接收邮件再来测试下面的ping脚本,要不然你会以为是脚本写错了呢!!!


注:本人原创,如需转载,请标明来源!请尊重他人的成果!!






转载于:https://my.oschina.net/huangjc/blog/369185

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值