Bridge Firewall 筆記 – detect.sh (備援)

detect.sh (偵測主要bridge firewall是否正常)

#!/bin/bash

COUNT=0 # 用來判斷連續異常次數累計
CHECK=0 # 用來識別本機bridge firewall是否建立

sleep 10s  # 因為開機後馬上偵測常會有問題,因此先等10秒後才開始偵測

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
This entry was posted in Linux, Network. Bookmark the permalink.