日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2025/7/14 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Shell脚本Ping监控主机是否存活并发邮件报警(三种方法) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

#前提已經可以通過mail或mutt客戶端發郵件

1.先安裝sendmail來發郵件

??#?yum?-y?install?sendmail#?/etc/init.d/sendmail?start#?chkconfig?sendmail?on

2.再安裝郵件客戶端

???#?yum?-y?install?mutt

? 2.1 為了更好在郵件中顯示,設置mutt客戶端發送信息

??#?vim?/etc/Muttrcset?charset="utf-8"???????????#設置發郵件編碼set?envelope_from=yesset?rfc2047_parameters=yes????#解決附件亂碼問題set?realname="報警"???????????#發件人別名set?use_from=yes??????????????#指定是否顯示別名set?from=monitor@test.com?????#發送人地址

方法1、通過加失敗計數器來判斷(誤報率低)

#!/bin/bash DATE=`date?+%F"?"%H:%M` IP=/root/monitor/ip.txt?????#ip地址表 MAIL=zhenliang369@163.com for?ip?in?$(cat?$IP?|?sed?'/^#/d') dofor?((i=1;i<=3;i++))doping?-c?1?$ip?&>/dev/null[?$??-ne?0?]?&&?let?FailCount+=1;done done [?-z?$FailCount?]?&&?FailCount=0??#當ping都正常時,FailCount值為空,就設置FailCount值為0,用整數比較 if?[?$FailCount?-eq?2?];then#echo?"$IP?ping?is?failed."echo?-e?"Date?:?$DATE\nHost?:?$ip\nProblem?:?Ping?is?failed,?Please?check?!?!?!"?|?mutt?-s?"Ping?Monitor"?$MAIL fi

#添加任務計劃

# crontab -e

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

done

方法二、通過ping一個包的狀態判斷(誤報率低,建議此方法)

#!/bin/bash MAIL="baojingtongzhi@163.com?huangxiaohong@loongtao.com" for?ip?in?$(cat?ip_list|sed?"/^#/d")????#ip_list是當前目錄下IP表doping?-c?1?$ip?&>/dev/null????????????#三個ping有一個能通,說明服務器正常a=$?sleep?2ping?-c?1?$ip?&>/dev/nullb=$?sleep?2ping?-c?1?$ip?&>/dev/nullc=$?sleep?2DATE=$(date?+%F"?"%H:%M)if?[?$a?-ne?0?-a?$b?-ne?0?-a?$c?-ne?0?];thenecho?-e?"Date?:?$DATE\nHost?:?$ip\nProblem?:?Ping?is?failed."?|?mail?-s?"Ping?$ip?failed?From?255.252"?$MAIL#else#????echo?"$ip?ping?is?successful."fi done

方法三、通過丟包率來判斷是否正常(誤報率高)

#!/bin/bash while?true doDATE=`date?+%F"?"%H:%M`MAIL="zhenliang369@163.com"for?ip?in?$(cat?ip_list|sed?"/^#/d")???????#ip_list是當前目錄下IP表?donum=$(ping?-c?2?$ip?|grep?"100%?packet?loss"?|wc?-l)????if?[?$num?==?1?];thenecho?-e?"Date?:?$DATE\nHost?:?$i\nProblem?:?Ping?is?failed."?|?mail?-s?"Ping?$i?failed?From?255.252"?$MAILfidone sleep?30 done

總結

以上是生活随笔為你收集整理的Shell脚本Ping监控主机是否存活并发邮件报警(三种方法)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。