700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Shell脚本Ping监控主机是否存活并发邮件报警(三种方法)

Shell脚本Ping监控主机是否存活并发邮件报警(三种方法)

时间:2021-12-21 10:07:44

相关推荐

Shell脚本Ping监控主机是否存活并发邮件报警(三种方法)

#前提已经可以通过mail或mutt客户端发邮件

1.先安装sendmail来发邮件

#yum-yinstallsendmail#/etc/init.d/sendmailstart#chkconfigsendmailon

2.再安装邮件客户端

#yum-yinstallmutt

2.1 为了更好在邮件中显示,设置mutt客户端发送信息

#vim/etc/Muttrcsetcharset="utf-8"#设置发邮件编码setenvelope_from=yessetrfc2047_parameters=yes#解决附件乱码问题setrealname="报警"#发件人别名setuse_from=yes#指定是否显示别名setfrom=monitor@#发送人地址

方法1、通过加失败计数器来判断(误报率低)

#!/bin/bashDATE=`date+%F""%H:%M`IP=/root/monitor/ip.txt#ip地址表MAIL=zhenliang369@foripin$(cat$IP|sed'/^#/d')dofor((i=1;i<=3;i++))doping-c1$ip&>/dev/null[$?-ne0]&&letFailCount+=1;donedone[-z$FailCount]&&FailCount=0#当ping都正常时,FailCount值为空,就设置FailCount值为0,用整数比较if[$FailCount-eq2];then#echo"$IPpingisfailed."echo-e"Date:$DATE\nHost:$ip\nProblem:Pingisfailed,Pleasecheck!!!"|mutt-s"PingMonitor"$MAILfi

#添加任务计划

# crontab -e

*/1 * * * * /root/monitor/ping.sh

done

方法二、通过ping一个包的状态判断(误报率低,建议此方法)

#!/bin/bashMAIL="baojingtongzhi@huangxiaohong@"foripin$(catip_list|sed"/^#/d")#ip_list是当前目录下IP表doping-c1$ip&>/dev/null#三个ping有一个能通,说明服务器正常a=$?sleep2ping-c1$ip&>/dev/nullb=$?sleep2ping-c1$ip&>/dev/nullc=$?sleep2DATE=$(date+%F""%H:%M)if[$a-ne0-a$b-ne0-a$c-ne0];thenecho-e"Date:$DATE\nHost:$ip\nProblem:Pingisfailed."|mail-s"Ping$ipfailedFrom255.252"$MAIL#else#echo"$ippingissuccessful."fidone

方法三、通过丢包率来判断是否正常(误报率高)

#!/bin/bashwhiletruedoDATE=`date+%F""%H:%M`MAIL="zhenliang369@"foripin$(catip_list|sed"/^#/d")#ip_list是当前目录下IP表donum=$(ping-c2$ip|grep"100%packetloss"|wc-l)if[$num==1];thenecho-e"Date:$DATE\nHost:$i\nProblem:Pingisfailed."|mail-s"Ping$ifailedFrom255.252"$MAILfidonesleep30done

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。