分享

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

 peijs5201314 2014-09-24

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

    #服务器IP:

    Server=192.168.1.xxx

    #管理员邮件:

    Mail=695xxxxxx@qq.com

    LOG=/root/ping.log

    b=0    #初始赋值为0,刚启动脚本时测试到网络正常则不提示,解决每次启动脚本时都提示网络正常的问题(设置为其他值则每次启动脚本时都提示)。

    while [ true ]

            do

                    [ `ping -w 3 $Server | grep 'time=' | wc -l` -ge 1 ] > /dev/null    #允许ping超时2次。

                    a=$?

                    if [ $a -ne 0 ]    #判断执行上面ping命令是否正常,为0则网络正常,否则提示网络中断。

                            then

                            if [ $a -ne $b ]    #解决网络中断时一直提示的问题。

                                    then

                                    b=$a    #给予下次判断网络是否正常。

                                    date >> $LOG

                                    echo "$Server 路由表:" >> $LOG

                                    traceroute -n -m 10 $Server >> $LOG \ &&

                                    echo '-------------------------------------------------' >> $LOG \ &&

                                    echo '' >> $LOG

                                    echo '' >> $LOG

                                    tail -30 $LOG > /root/ping.txt

                                    echo '警报警报:网络中断!!' | mutt $Mail -s '网络中断' -a /root/ping.txt

                           

                            fi

                    else

                            if [ $a -ne $b ]    #解决网络正常时一直提示的问题。

                                    then

                                    b=$a    #给予下次判断网络是否正常。

                                    date >> $LOG

                                    echo "$Server 路由表:" >> $LOG

                                    traceroute -n -m 10 $Server >> $LOG \ &&

                                    echo '-------------------------------------------------' >> $LOG \ &&

                                    echo '' >> $LOG

                                    echo '' >> $LOG

                                    tail -30 $LOG > /root/ping.txt

                                    echo '通知:网络恢复正常!!' | mutt $Mail -s '网络正常' -a /root/ping.txt

                           

                             fi

                   fi

    done

  3. 执行脚本:sh /root/ping.sh &

    并添加到开机启动项即可实现时时监控。

  4. 测试:去邮箱查看是否收到邮件。

    就这样,轻松监控服务器网络。


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多