Php程序监控邮件提醒linux,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脚本,要不然你会以为是脚本写错了呢!!!
注:本人原创,如需转载,请标明来源!请尊重他人的成果!!
Php程序监控邮件提醒linux,Linux ping命令实现网络监控 并邮件提醒管理员相关推荐
- ping 延迟 linux,使用ping命令查看网络延迟--用Enki学Linux系列(7)
使用ping命令查看网络延迟 Using ping To Measure Network Latency ping命令持续发送少量互联网流量到远程地址并报告收到回应的总时间.如果流量因为网络故障或者错 ...
- linux中ping命令详解,linux中的ping命令的详细解释
linxu下的ping命令的主要功能就是确定网络状态,下面由秋天网 Qiutian.ZqNF.Com小编为大家整理了linux的ping命令的详细解释的相关知识,希望对大家有帮助! 一.linux中的 ...
- linux ping大包指令,linux下ping命令使用详解,
linux下ping命令使用详解, •ping命令一般用于检测网络通与不通,也叫时延,其值越大,速度越慢PING(PacketInternetGrope),因特网包探索器,用于测试网络连接量的程序. ...
- linux ping 显示时间间隔,linux的ping命令设置时间间隔
linux下ping命令可以设置每次ping的时间间隔.下面由秋天网 Qiutian.ZqNF.Com小编为大家整理了linux下ping命令设置时间间隔的相关知识,希望对大家有帮助! linux的p ...
- linux的ping命令-l参数,linux下 ping命令参数
linux下 ping命令参数 表1 ping命令参数(linux) 参数 描述 -c count 在收发指定的count个数目的报文后停止 -d 在套接口设置so_debug -f 尽可能快地发送报 ...
- Linux终止ping命令
Linux终止正在执行的ping命令 在Linux环境下使用ping命令测试网络连通性时,ping命令会一直执行,可以使用Ctrl+C的方式来终止ping命令的执行.
- 使用ping命令查看网络延迟--用Enki学Linux系列(7)
使用ping命令查看网络延迟 Using ping To Measure Network Latency ping命令持续发送少量互联网流量到远程地址并报告收到回应的总时间.如果流量因为网络故障或者错 ...
- linux怎么用ping通测试连接,ping网络是否连通的步骤_使用ping命令检查网络连通性的方法-系统城...
2015-03-23 10:34:59 浏览量:775 Ping属于一个通信协议,利用Ping命令可以检查网络是否连通,可以很好地帮助我们分析和判定网络故障,然而在WinXP系统的局域网下我们如果要 ...
- ping命令测试网络_如何执行计算机Ping测试命令以检查网络连接?
ping命令测试网络 Computer networking provides a lot of features for remote usage. But remote access may ha ...
- 使用ping命令检查网络是否通畅或网络连接连接速度
使用ping命令检查网络是否通畅或网络连接连接速度 Ping是Windows.Unix和Linux系统下的一个命令.ping也属于一个通信协议,是TCP/IP协议的一部分.利用ping命令可以检查网络 ...
最新文章
- FZU 1889 龟兔赛跑
- to_char 函数将小数点舍掉的解决办法
- Javascript之旅——第四站:parseInt中要注意的坑
- java关机命令收集cmd关机命令
- Pandas 文本数据方法 partition( )
- 模板设计在tomcat中的应用
- Oracle数据库中查看所有表和字段以及表注释.字段注释
- Android电话本实现
- java 拖拉机_拖拉机(升级)必胜之秘诀 - 淡泊明志,宁静致远 - JavaEye技术网站...
- 学习Java的心路历程
- startx 命令_通过startx从命令行启动KDE
- QBC 通过Heibernate查询 discriminator 配置的属性问题
- matlab 类似宏定义,比较全面的宏定义解析
- [推荐](穆穆推荐)如果你现在不成功,请看看你是不是选错了老板
- 项目经理必备的软技能,你有吗?
- Spring Boot入门教程(三十五):支付宝集成-准备工作
- 非J2EE部署解决方案
- 如何检测文件中的违禁词和小于规定大小的文件?
- TW8836 SPIOSD功能
- 如何下载编译Linux下RJMCMCMT1D(可逆跳跃马尔科夫链门特卡罗一维大地电磁反演)开源软件