#!/ binに/ bashのの #はip.txt IPアドレスQQ450433231の保存された 事前定義されたテキストの良いIPの場所は、迅速なトラブルシューティングを助長している、プロジェクト名ip2.txt#保存されたIPアドレスは、出力をフォーマットするために使用されている #このアップデートは、回復の警告を追加ダウンタイム 。/root/weixin.sh#ロボットマイクロチャネルhttps://blog.51cto.com/junhai/2424374にアラームコールを送信する 。/root/downiptime.sh故障時間をログ#に基づいて算出される #は時間定義 CUR_TIME(){ DATE」をYの%+ /%M /%のDの%のH:%のM:%のS " } アラーム情報出力#1 ip2.txtルックアップファイルの出力アラーム情報を定義するIPに従って のSystemName(){ NAME = 'CAT ip2jk.txt |はgrep $ IP | WC -l` [$名-eq 1]のiF、次に | CAT ip2jk.txtはgrep $ IP 他に "$のIP"エコー Fiの } #をファイルが存在するかどうかを判断する [を!-f /root/ipjk.txt] &&エコー」 ipjk.txtファイルは「&& 1番出口が存在しません [を!-f /root/ipadd.txt] &&タッチipadd.txtTXTの #は、ファイル・スペースを削除します -iセッド/root/ipjk.txt '/ ^ $ / D' しばらく読むIP やる [-Z $ IP] && && 1番出口"ipjk.txtスペースはファイル形式をチェック存在する"エコー。 ((1のために= I;私は< 。6;私は++)) を行う ピングの1 -W 2 -C IP&$>は/ dev / nullを決意ルール#。 [$ = 0?]のIF;その後、 "成功のping $ IPの$(CUR_TIME)"エコー>を/ dev / null# /root/connect.log >> BREAKの elifの[$ i = 5];その後、 情報= `エコー-eは` "N- $のIP \ $(CUR_TIME)は、\ nは$(SYSTEMNAME)チェックし、メッセージをpingに応答しませんでした!" wx_ip#零細企業が警告の手紙を送って エコー-e "$(cur_time)の\ n個の$ IPは、メッセージをpingに応答チェックしませんでした\ nは$(SYSTEMNAME)!" |メール-s " [IP]緊急警報メッセージのPINGに応答しませんでした" [email protected]#の/ etc / mailを変更するには、電子メール警告を送信します。RCは、サードパーティのメールボックスを呼び出すことができます エコー>>ログに書き込ま/root/connectfail.log# "$のI $のIP検査の$(cur_time)はPINGメッセージに応答しませんでした" エコー"$のIP" >> ipadd。 監視リストを削除TXT#到達不能IPは ipjk.txt | -i "$ IP || S"のsed SED -i "/ ^ $ / dの" ipjk.txtを 他の エコー>> /root/connectfail.log "$ Iの$(CUR_TIME)検査では、IPパケットのPINGに応答しない$" 2 SLEEP Fiは DONE DONE </root/ipjk.txt セッド-i "/ ^ $ / D" ipadd.txt アラームを回復するために送信されたときに########################### IPの回復がある 読み出したIPはしばらく やるの [-z $ IP] &&エコー」 ipadd.txtスペースは、ファイルフォーマット"&& 1番出口チェック存在する のping -c 2 -W 1 $ IP&>を/ dev / null ;その後、IF [?$ = 0] $(CUR_TIME)$のIP復元「>エコーを-e" > /root/connectfail.log U = $( "$ IP" ipjk.txt -wはgrep | WCの-l) IF、次に[$ Uの-eq 1] "$(cur_time)$ IPはすでに存在している" >> /root/connectfail.logエコー$(cur_time)$ IPはすでに存在している「>> /root/connectfail.log 他 エコー"$ IPは" >> ipjk.txt Fiの ipadd.txt | SED -i "$のIP || S" SED -i「/ ^ $ / D "ipadd.txt $(CUR_TIME)\ $ N-復元IP \ N- $(のSystemName)\ N- \ N- $(fail_time) "`=`エコー-e情報" wx_ip エコー-e" $(CUR_TIME)\ n個の$ IPは、\ nは$(SYSTEMNAME)を復元し、\ nはされています \ nは$(fail_time) "|メール-s" [IP]が復元されました"[email protected] 他 エコー" $(CUR_TIMEを)$ I $ IPの検査PINGメッセージ「>>は/ dev / nullに応答しなかった Fiの <DONE /root/ipadd.txt
#!/ binに/ bashの #ログ解析計算時間 fail_time(){ のstartTime = `尾500 connectfail.log -n | grepを"$ IP "| grepを"第一" |尾-n 1 | awkの {、$ 1を印刷2} $ ' ` ENDTIME =`尾500 connectfail.log -n | grepを"$ IP" | grepを"復元" |尾の-n 1 |。awkの。{$印刷1、$ 2}' ` STARTM = $(DATEの--date = "$のstartTime" %M +); ENDM = $(DATE --date = "終了時刻$" %M +); starth = $(DATEの--date = "$のstartTime" %+ H); endh = $( --date = DATE "終了時刻の$" %のHが+); STARTD = $(DATE --date = "$のstartTime" D +%); ENDD = $(DATE --date = "$終了時刻" D +%)。 「障害が時間$開始STARTTIME」エコー エコー「の故障終了時間$の終了時刻を」 日= $(($((10の#$ ENDD)) - $((10#$のSTARTD)))) 時間= $(($((10の#$ endh)) - $((10#$ Homeh)) )) 分= $(($((10#$ ENDM)) - $((10#$ STARTM)))) 合計= $(($(* 24 * 60($日))+ $(($の時間* 60))+ $分))は 、「障害時間をエコー:$((総/ 60) )時間$( (%合計$ 60)は)M " }
エンタープライズマイクロチャネル警告効果
Eメールアラートの効果