Bridge Firewall 筆記 – detect.sh

detect.sh (偵測網路狀態,以判定是否要移除bridge或重建bridge)

#!/bin/bash

COUNT=0         # 用來計算次數之變數
FLAG="YES"      # 用來締造無窮迴圈之變數
FLAGA="YES"     # 用來判斷目前是否有無建立bridge,預設是有建立

while [ $FLAG == "YES" ]
do
# ping 學術網路的gateway,如果正常為1,不正常為0
  FILESRV=`ping -c1 TAGW |grep TAGW |grep -c ttl` 

  #echo $FILESRV
# 如果不正常
  if [ $FILESRV -eq 0 ]
  then
# COUNTA用來記錄目前連線是否恢復正常,當發生不正常時歸零,當正常時累加
    COUNTA=0                    #connection still has problem
# 如果目前是有建立bridge的狀態
    if [ $FLAGA == "YES" ]
    then
# 利用COUNT累加計算當建立bridge時,不正常次數連續發生幾次
      COUNT=$(($COUNT+1))
# 如果連續3次,則移除掉本機bridge,藉由eth2無法回應backup firewall已啟動備援
      if [ $COUNT -eq 3 ]
      then
        /bin/sh /br-fw/br-del.sh    #let network down, let backup firewall up
        FLAGA="NO"                  #no bridge
      fi
    fi
  fi
# 如果網路連線正常
  if [ $FILESRV -eq 1 ]
  then
# 使COUNT歸零重新計算
    COUNT=0                     #connection is not stable
# 如果目前bridge是不存在
    if [ $FLAGA == "NO" ]
    then
# 利用COUNTA計算網路不正常後恢復共測試了幾次
      COUNTA=$(($COUNTA+1))
      echo $COUNTA
# 如果連續正常次數累積達30次,則重新建立本機bridge firewall
      if [ $COUNTA -eq 30 ]
      then
# 呼叫 br.sh 建立 bridge firewall
        /bin/sh /br-fw/br.sh
# 標示目前本機已建立bridge firewall
        FLAGA="YES"
# 告知管理者,目前已重建完成bridge firewall
        mail -s "FW Server 1 (From Server 1)" cowman.chiang@gmail.com < /br-fw/3.txt
      fi
    fi
  fi
# 隔五秒再行測試一次
  sleep 5s
done
This entry was posted in Linux, Network. Bookmark the permalink.