#! /bin/sh # local ip : 192.168.1.237 [ -e nginx_ha.pid ] && kill -9 $(cat nginx_ha.pid) echo $$ > nginx_ha.pid bind_vip1() { ifconfig $ifc $ha_vip1 netmask 255.255.255.0 alias echo 'xx' } remove_vip2() { ifconfig $ifc $ha_vip2 netmask 255.255.255.0 -alias echo 'bb' } ha_vip1="192.168.1.239" ha_vip2="192.168.1.237" ifc="rl0" ifconfig $ifc $ha_vip2 netmask 255.255.255.0 alias ifconfig $ifc $ha_vip1 netmask 255.255.255.0 -alias do_vip1="N" do_vip2="N" while true do http_code_vip1=$(/usr/local/bin/curl -o /dev/null -s -w "%{http_code}" http://$ha_vip1) http_code_vip2=$(/usr/local/bin/curl -o /dev/null -s -w "%{http_code}" http://$ha_vip2) if [ $do_vip2 = "N" ] && [ $http_code_vip2 -ne 200 ]; then remove_vip2 do_vip2="Y" fi if [ $do_vip1 = "N" ] && [ $http_code_vip1 -ne 200 ]; then bind_vip1 do_vip1="Y" fi sleep 5 done