detect.sh (偵測主要bridge firewall是否正常)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
#!/bin/bash COUNT=0 # 用來判斷連續異常次數累計 CHECK=0 # 用來識別本機bridge firewall是否建立 sleep 10s # 因為開機後馬上偵測常會有問題,因此先等10秒後才開始偵測 <!--more--> while [ "yes" == "yes" ] do # 偵測主要bridge firewall的介面2是否正常,1代表正常,0代表不正常 FILESRV=`ping -c1 FW3 |grep FW3 |grep -c ttl` # 如果不正常 if [ $FILESRV -eq 0 ] then # COUNT累加,用來重複寄送提醒信件 COUNT=$(($COUNT+1)) # 如果目前本機並沒有建立bridge firewall if [ $CHECK -eq 0 ] then # 開始建立bridge firewall CHECK=1 # 原本不管怎樣先把bridge刪掉,但是後來發生問題,就拿掉了 #/usr/bin/ssh FW3 '/bin/sh /br-fw/br-del.sh' # 稍等一下 sleep 1s # 呼叫br-add.sh建立bridge firewall /bin/sh /br-fw/br-add.sh # 寄發通知信件給管理者,目前已取代主要bridge firewall mail -s "FW Server 3 Down" cowman.chiang@gmail.com < /br-fw/1.txt fi # 如果異常次數超過200,在寄發一次通知信件 if [ $COUNT -eq 200 ] then mail -s "FW Server 3 Down" cowman.chiang@gmail.com < /br-fw/1.txt # COUNT歸零,重新計數 COUNT=0 fi #echo $COUNT fi # 如果連線偵測正常 if [ $FILESRV -eq 1 ] then # 如果目前本機有建立 bridge firewall,則移除掉,因為是以跳線直接連接,並且 # 主要bridge firewall是開機會重新建立bridge firewall,因此需要先移除掉本機 # 不然會造成嚴重之loop if [ $CHECK -eq 1 ] then # 標示本機無bridge firewall CHECK=0 #echo "open" # 移除掉本機 bridge firewall /bin/sh /br-fw/br-del.sh # 寄發通知信件給管理者,目前主要bridge firewall已恢復 mail -s "FW Server 3 Down" cowman.chiang@gmail.com < /br-fw/2.txt fi COUNT=0 #echo $COUNT fi # 每執行完後停頓3秒再偵測一次 sleep 3s done |