描述:

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脚本,要不然你会以为是脚本写错了呢!!!

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

Php程序监控邮件提醒linux,Linux ping命令实现网络监控 并邮件提醒管理员相关推荐

  1. ping 延迟 linux,使用ping命令查看网络延迟--用Enki学Linux系列(7)

    使用ping命令查看网络延迟 Using ping To Measure Network Latency ping命令持续发送少量互联网流量到远程地址并报告收到回应的总时间.如果流量因为网络故障或者错 ...

  2. linux中ping命令详解,linux中的ping命令的详细解释

    linxu下的ping命令的主要功能就是确定网络状态,下面由秋天网 Qiutian.ZqNF.Com小编为大家整理了linux的ping命令的详细解释的相关知识,希望对大家有帮助! 一.linux中的 ...

  3. linux ping大包指令,linux下ping命令使用详解,

    linux下ping命令使用详解, •ping命令一般用于检测网络通与不通,也叫时延,其值越大,速度越慢PING(PacketInternetGrope),因特网包探索器,用于测试网络连接量的程序. ...

  4. linux ping 显示时间间隔,linux的ping命令设置时间间隔

    linux下ping命令可以设置每次ping的时间间隔.下面由秋天网 Qiutian.ZqNF.Com小编为大家整理了linux下ping命令设置时间间隔的相关知识,希望对大家有帮助! linux的p ...

  5. linux的ping命令-l参数,linux下 ping命令参数

    linux下 ping命令参数 表1 ping命令参数(linux) 参数 描述 -c count 在收发指定的count个数目的报文后停止 -d 在套接口设置so_debug -f 尽可能快地发送报 ...

  6. Linux终止ping命令

    Linux终止正在执行的ping命令 在Linux环境下使用ping命令测试网络连通性时,ping命令会一直执行,可以使用Ctrl+C的方式来终止ping命令的执行.

  7. 使用ping命令查看网络延迟--用Enki学Linux系列(7)

    使用ping命令查看网络延迟 Using ping To Measure Network Latency ping命令持续发送少量互联网流量到远程地址并报告收到回应的总时间.如果流量因为网络故障或者错 ...

  8. linux怎么用ping通测试连接,ping网络是否连通的步骤_使用ping命令检查网络连通性的方法-系统城...

    2015-03-23 10:34:59 浏览量:775 Ping属于一个通信协议,利用Ping命令可以检查网络是否连通,可以很好地帮助我们分析和判定网络故障,然而在WinXP系统​的局域网下我们如果要 ...

  9. ping命令测试网络_如何执行计算机Ping测试命令以检查网络连接?

    ping命令测试网络 Computer networking provides a lot of features for remote usage. But remote access may ha ...

  10. 使用ping命令检查网络是否通畅或网络连接连接速度

    使用ping命令检查网络是否通畅或网络连接连接速度 Ping是Windows.Unix和Linux系统下的一个命令.ping也属于一个通信协议,是TCP/IP协议的一部分.利用ping命令可以检查网络 ...

最新文章

  1. FZU 1889 龟兔赛跑
  2. to_char 函数将小数点舍掉的解决办法
  3. Javascript之旅——第四站:parseInt中要注意的坑
  4. java关机命令收集cmd关机命令
  5. Pandas 文本数据方法 partition( )
  6. 模板设计在tomcat中的应用
  7. Oracle数据库中查看所有表和字段以及表注释.字段注释
  8. Android电话本实现
  9. java 拖拉机_拖拉机(升级)必胜之秘诀 - 淡泊明志,宁静致远 - JavaEye技术网站...
  10. 学习Java的心路历程
  11. startx 命令_通过startx从命令行启动KDE
  12. QBC 通过Heibernate查询 discriminator 配置的属性问题
  13. matlab 类似宏定义,比较全面的宏定义解析
  14. [推荐](穆穆推荐)如果你现在不成功,请看看你是不是选错了老板
  15. 项目经理必备的软技能,你有吗?
  16. Spring Boot入门教程(三十五):支付宝集成-准备工作
  17. 非J2EE部署解决方案
  18. 如何检测文件中的违禁词和小于规定大小的文件?
  19. TW8836 SPIOSD功能
  20. 如何下载编译Linux下RJMCMCMT1D(可逆跳跃马尔科夫链门特卡罗一维大地电磁反演)开源软件

热门文章

  1. [转]反射(用反射调用任意.net库中的方法)
  2. 【Mybatis】Mybatis三大组件之ResultSetHandler
  3. RabbitMQ消息可靠性传输示例
  4. SpringBoot整合Swagger生成接口文档
  5. eclipse无法访问sun.misc.Unsafe类的解决办法
  6. UDP ECHO server
  7. 【J2EE】在项目中理解J2EE规范
  8. ES6学习笔记 -- 尾调用优化
  9. itop 导入AD用户
  10. Redis commands 官方