十五年测试老手,长期负责WEB\APP 项目测试,目前主要负责团队管理工作。

shell实现监控服务器状态以及服务器自动切换

上一篇 / 下一篇  2011-07-23 16:01:22 / 个人分类:其它

主服务器A:192.168.1.22

l0{0Qy]Dx+M0

镜像服务器B:192.168.1.2351Testing软件测试网 B"`V4bF)}Y'f

跳转和监控服务器C:192.168.1.24

3G1l$Fe?o5j/p mrT(h0

C计划任务每一分钟运行如下脚本,实现对A可访问监控,如果发现不能连接将自动将网站连接做301跳转到B服务器;

MF?0a jq ZI\ } q0

若监控到A恢复网络访问,自动切换回A:

0^ tE!{&M&`+~0

HOSTS=”192.168.1.22″
COUNT=20

logfile=”./qiehuanip.log”
cd /etc/nginx
s=`ping -c $COUNT $HOSTS | grep ‘received’ |awk -F ‘,’ ‘{print $2}’ |awk ‘{print $1}’`   #ping 20 次
if (( $s <= 2 )) #如果收到的数据包少于2个,说明A网络故障

[!^2_u J/Wb9S Or0

then
if [ ! -f "$logfile" ] #如果没有进行过切换,貌似替换服务器的nginx虚拟主机文件(做的301跳转),实现网站服务器IP地址切换
       then
cp -f ./adcenter.vhost_beiyong ./adcenter.vhost
/sbin/service nginx restart

c$Gu4D\,d ^g0


echo “AD Server IP been change ‘beiyong’!”>$logfile
echo “AD Server IP been change ‘beiyong’!”
#mail -s “AD Server IP been change ‘beiyong’!” $EMAILID
else
echo  “now is mirror server” # 正在使用镜像服务器
fi
else
if [ ! -f "$logfile" ]
then
echo “AD server is OK”
else #A服务器网络恢复后,如果存在过切换日志,那么切换回原有nginx配置文件。实现服务器IP还原
        cp -f ./adcenter.vhost_wt ./adcenter.vhost
/sbin/service nginx restart
echo  “AD Server IP been change ‘wt’”
rm -f $logfile
fi
#mail -s “AD Server IP been change ‘wt’” $EMAILID
fi51Testing软件测试网Rh6a.|4V[

以上脚本在centos x86_64 下测试通过

c2C/?nN fU0

TAG: shell Shell

 

评分:0

我来说两句

Open Toolbar