1. 程式人生 > >編寫檢測web節點是否正常,自動加入或踢出LVS

編寫檢測web節點是否正常,自動加入或踢出LVS

#!/bin/bash VIP1=192

#!/bin/bash
VIP1=192.168.1.200:80
VIP=192.168.1.200
web1=192.168.1.10
web2=192.168.1.20
Port=80

. /etc/init.d/functions
#檢測web1是否正常,如果正常則加入LVS ,不正常則踢出LVS
add1(){
web1ip=$(ipvsadm -ln|grep $web1:$Port|awk ‘{print $2}‘)
Curl1=$(curl -s -I $web1 |grep 200|awk ‘{print $2}‘)
if [ "$Curl1" = "200" ]
then
if [ "$web1ip" != "$web1:$Port" ]

then
ipvsadm -a -t "$VIP1" -r "$web1" -g -w 1 &>/dev/null
action "add $web1" /bin/true
fi
return 0
else
if [ "$web1ip" = "$web1:$Port" ]
then
ipvsadm -d -t "$VIP1" -r "$web1" &>/dev/null
action "del $web1" /bin/true
fi
return 1
fi
}
#檢測web2是否正常,如果正常則加入LVS ,不正常則踢出LVS
add2(){
web2ip=$(ipvsadm -ln|grep $web2:$Port|awk ‘{print $2}‘)
Curl2=$(curl -s -I $web2 |grep 200|awk ‘{print $2}‘)
if [ "$Curl2" != "200" ]
then
if [ "$web2ip" = "$web2:$Port" ]
then
ipvsadm -d -t "$VIP1" -r "$web2" &>/dev/null
action "del $web2" /bin/true
fi
return 1
else
if [ "$web2ip" != "$web2:$Port" ]
then
ipvsadm -a -t "$VIP1" -r "$web2" -g -w 1 &>/dev/null
action "add $web2" /bin/true
fi
return 0

fi
}
#啟動LVS
/etc/init.d/ipvsadm start

配置VIP

     ifconfig eth0:0 $VIP/24
     ipvsadm -A -t "$VIP1" -s rr

#死循環
while true
do
add1
add2

     /etc/init.d/ipvsadm save &>/dev/null
     /etc/init.d/ipvsadm  reload &>/dev/null

sleep 5
done

編寫檢測web節點是否正常,自動加入或踢出LVS