mr923 发表于 2018-8-30 06:51:38

Shell脚本之自动切换网关篇

  此脚本适用于有一个主网关和一个备用网关的服务网络架构中,自动检测网关是否正常,自动切换网关,自动报警。
  #!/bin/bash
  IPA=192.168.100.254      #定义网关AIP地址
  IPB=172.30.8.254         #定义网关BIP地址
  MAIL=admin@ssxiaoguai.com#定义管理员邮箱
  while true               #利用死循环永久执行此脚本
  do
  ping-c 3 $IPA &> /dev/null    #ping网关A
  STATUS=$?
  if [ "$STATUS" -eq 0 ];then   #如果能够通信,则等待5秒,继续执行ping网关A动作
  sleep 5
  continue
  else
  ping -c 3 $IPB &> /dev/null#如果不能够与网关A正常通信,则ping网关B
  i=$?
  if [ 0 -eq "$i" ];then       #如果与网关B能够正常通信,则切换到网关B
  route del default gw $IPA
  route add default gw $IPB
  wall "WARNNING:${IPA} is stopped!!!"
  #向每个终端发送错误信息,及时邮件告知管理员
  echo "WARNNING:${IPA} is stopped!!!" | mail -s "WARNNING!!!!"$MAIL
  while true            #继续利用死循环,让脚本永久执行                                    do
  ping -c 3 $IPA &> /dev/null#ping网关A
  b=$?
  if [ "$b" -eq 0 ];then       #如果能够通信,则切换到网关A
  route del default gw $IPB
  route add default gw $IPA
  break
  fi                           #否则等待5秒,继续ping网关A
  sleep 5
  done
  else #如果网关A和网关B都不能够用,就向所有终端发送警告信息,并发送邮件通知管理员                wall "EORRO:network services is alread stopped!!!!!"
  echo "EORRO:network services is alread stopped!!!!!" | mail -s "Gateway is done"$MAIL             fi
  fi
  done

页: [1]
查看完整版本: Shell脚本之自动切换网关篇