shell寫(xiě)的告警次數(shù)控制及恢復(fù)示例代碼
更新時(shí)間:2013年02月04日 17:15:04 作者:
自己寫(xiě)的一個(gè)監(jiān)控腳本,發(fā)現(xiàn)告警短信次數(shù)未控制時(shí),垃圾短信N多。經(jīng)過(guò)思考,做了個(gè)簡(jiǎn)單的控制,同一故障只發(fā)送二次。之后不再發(fā)送?;謴?fù)后發(fā)送恢復(fù)短信
俺也是新手,寫(xiě)的有點(diǎn)老土,權(quán)當(dāng)練手了,供初學(xué)的朋友們參考吧。
#!/bin/bash
if [ $succ_ping -gt $((ping_count-1)) ];then
if [ -f ./alarm_file/alarm_$host ];then
rm -rf ./alarm_file/alarm_$host
#發(fā)送故障消除短信通知--調(diào)用insert_table
messages="$host服務(wù)器通迅恢復(fù)正常`date "+%Y%m%d %H:%M:%S"`"
echo "$messages" >>./log/ping_err_recover.log
insert_table
else
echo "本次檢測(cè)結(jié)果---->$host服務(wù)器ping檢測(cè)正常"
echo "`date "+%Y%m%d %H:%M:%S"`--->$host服務(wù)器ping檢測(cè)正常,ping次數(shù)$ping_count,接收$succ_ping" >>./log/ping_log
fi
else
echo "本次檢測(cè)結(jié)果---->$host服務(wù)器有丟包現(xiàn)象,丟包率為:$loss_ping"
messages="`date "+%Y%m%d %H:%M:%S"`--->$host服務(wù)器有丟包現(xiàn)象,丟包率為:$loss_ping"
#對(duì)警次數(shù)進(jìn)行處理,超過(guò)2次將不告警
#格式host a(告警次數(shù))
#已經(jīng)出現(xiàn)告警的次數(shù)加1
echo "告警服務(wù)器為$host"
if [ -f ./alarm_file/alarm_$host ];then
#取出當(dāng)前的告警次數(shù)并加1
a=`awk '{print$2}' ./alarm_file/alarm_$host`
b=$(($a+1))
echo "$host $b" >./alarm_file/alarm_$host
alarm_count=`awk '{print$2}' ./alarm_file/alarm_$host`
if [ $alarm_count -gt $sms_count ];then
echo "超過(guò)2次不發(fā)送短信"
echo "`date "+%Y%m%d %H:%M:%S"`--->$host服務(wù)器有丟包現(xiàn)象,接收$succ_ping,丟包率為:$loss_ping,超過(guò)二次不發(fā)送。" >>./log/ping_err_log
else
#未超過(guò)2次調(diào)用insert_table函數(shù)發(fā)送短信
echo "未超過(guò)2次"
echo "`date "+%Y%m%d %H:%M:%S"`--->$host服務(wù)器有丟包現(xiàn)象,接收$succ_ping,丟包率為:$loss_ping">>./log/ping_err_log
insert_table
fi
else
#第一次告警
echo "第一次告警"
echo "$host 1" >./alarm_file/alarm_$host
insert_table
echo "`date "+%Y%m%d %H:%M:%S"`--->$host服務(wù)器有丟包現(xiàn)象,接收$succ_ping,丟包率為:$loss_ping" >>./log/ping_err_log
fi
fi
done
復(fù)制代碼 代碼如下:
#!/bin/bash
if [ $succ_ping -gt $((ping_count-1)) ];then
if [ -f ./alarm_file/alarm_$host ];then
rm -rf ./alarm_file/alarm_$host
#發(fā)送故障消除短信通知--調(diào)用insert_table
messages="$host服務(wù)器通迅恢復(fù)正常`date "+%Y%m%d %H:%M:%S"`"
echo "$messages" >>./log/ping_err_recover.log
insert_table
else
echo "本次檢測(cè)結(jié)果---->$host服務(wù)器ping檢測(cè)正常"
echo "`date "+%Y%m%d %H:%M:%S"`--->$host服務(wù)器ping檢測(cè)正常,ping次數(shù)$ping_count,接收$succ_ping" >>./log/ping_log
fi
else
echo "本次檢測(cè)結(jié)果---->$host服務(wù)器有丟包現(xiàn)象,丟包率為:$loss_ping"
messages="`date "+%Y%m%d %H:%M:%S"`--->$host服務(wù)器有丟包現(xiàn)象,丟包率為:$loss_ping"
#對(duì)警次數(shù)進(jìn)行處理,超過(guò)2次將不告警
#格式host a(告警次數(shù))
#已經(jīng)出現(xiàn)告警的次數(shù)加1
echo "告警服務(wù)器為$host"
if [ -f ./alarm_file/alarm_$host ];then
#取出當(dāng)前的告警次數(shù)并加1
a=`awk '{print$2}' ./alarm_file/alarm_$host`
b=$(($a+1))
echo "$host $b" >./alarm_file/alarm_$host
alarm_count=`awk '{print$2}' ./alarm_file/alarm_$host`
if [ $alarm_count -gt $sms_count ];then
echo "超過(guò)2次不發(fā)送短信"
echo "`date "+%Y%m%d %H:%M:%S"`--->$host服務(wù)器有丟包現(xiàn)象,接收$succ_ping,丟包率為:$loss_ping,超過(guò)二次不發(fā)送。" >>./log/ping_err_log
else
#未超過(guò)2次調(diào)用insert_table函數(shù)發(fā)送短信
echo "未超過(guò)2次"
echo "`date "+%Y%m%d %H:%M:%S"`--->$host服務(wù)器有丟包現(xiàn)象,接收$succ_ping,丟包率為:$loss_ping">>./log/ping_err_log
insert_table
fi
else
#第一次告警
echo "第一次告警"
echo "$host 1" >./alarm_file/alarm_$host
insert_table
echo "`date "+%Y%m%d %H:%M:%S"`--->$host服務(wù)器有丟包現(xiàn)象,接收$succ_ping,丟包率為:$loss_ping" >>./log/ping_err_log
fi
fi
done
相關(guān)文章
shell獲取目錄下所有文件夾的名稱(chēng)并輸出的實(shí)例
今天小編就為大家分享一篇shell獲取目錄下所有文件夾的名稱(chēng)并輸出的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-06-06linux和windows下的自動(dòng)ftp腳本(shell bat)
linix和windows下的自動(dòng)ftp腳本(shell bat),供大家學(xué)習(xí)參考2013-02-02通過(guò)短信發(fā)送LOG歸類(lèi)號(hào)碼發(fā)送情況的shell腳本
通過(guò)短信發(fā)送LOG歸類(lèi)號(hào)碼發(fā)送情況的shell腳本,有需要的朋友可以參考下2013-02-02NetCat工具命令介紹及遠(yuǎn)程文件傳輸實(shí)現(xiàn)
這篇文章主要為大家介紹了NetCat工具命令的介紹以及遠(yuǎn)程文件傳輸實(shí)現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-03-03