此脚本适用于有一个主网关和一个备用网关的服务网络架构中,自动检测网关是否正常,自动切换网关,自动报警。
#!/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
转载于:https://blog.51cto.com/ssxiaoguai/1439896