曬曬我的小腳本

在Director 上判斷Realserver是否還存在的腳本。
以VIP=172.16.10.1 
P0RT=80
RIP1=172.16.10.2
RIP2=172.16.10.3
RW1=100
RW2=200  爲例。

#!/bin/bash
VIP=172.16.10.1
P0RT=80
RIP1=172.16.10.2
RIP2=172.16.10.3
RW1=100
RW2=200

ADD () {
    if [ "$1" = "$RIP1" ];then
     ipvsadm -Ln | grep "$RIP1:80"
       [ ! $? -eq 0 ] && ipvsadm -a -t $VIP:$PORT -r $RIP1 -g -w RW1
   
    elif [ "$1" = "$RIP2" ];then
     ipvsadm -Ln | grep "$RIP2:80"
       [ ! $? -eq 0 ] && ipvsadm -a -t $VIP:$PORT -r $RIP2 -g -w RW2
    else
       exit
    fi
}

DELETE () {
        if [ "$1" = "$RIP1" ];then
         ipvsadm -Ln | grep "$RIP1:80"
         [  $? -eq 0 ] && ipvsadm -d -t $VIP:$PORT -r $RIP1
        elif [ "$1" = "$RIP2" ]; then
         ipvsadm -Ln | grep "$RIP2:80"
         [  $? -eq 0 ] && ipvsadm -d -t $VIP:$PORT -r $RIP2
        else
           exit
}

ipvsadm -Ln | grep "$VIP:$PORT"
    
RESULAT=$?

until [ $RESULAT -eq 0 ]; do
   for IP in {$RIP1,$RIP2}; do
    T=`elinks -dump
http://$IP/.test.html | grep "OK"`
  
      if [ "$T" = "OK" ]; then
         ADD () $IP
       
      else
          DELETE () $IP
            
      fi
done
sleep 5
done

呵呵 ,


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章