DR类型director脚本示例:
#!/bin/bash # vip=172.16.100.33 rip=('172.16.100.8' '172.16.100.9') weight=('1' '2') port=80 scheduler=rr ipvstype='-g' case $1 in start) iptables -F -t filter ipvsadm -C ifconfig eth0:0 $vip broadcast $vip netmask 255.255.255.255 up route add -host $vip dev eth0:0 echo 1 > /proc/sys/net/ipv4/ip_forward ipvsadm -A -t $vip:$port -s $scheduler [ $? -eq 0 ] && echo "ipvs service $vip:$port added." || exit 2 for i in `seq 0 $[${#rip[@]}-1]`; do ipvsadm -a -t $vip:$port -r ${rip[$i]} $ipvstype -w ${weight[$i]} [ $? -eq 0 ] && echo "RS ${rip[$i]} added." done touch /var/lock/subsys/ipvs ;; stop) echo 0 > /proc/sys/net/ipv4/ip_forward ipvsadm -C ifconfig eth0:0 down rm -f /var/lock/subsys/ipvs echo "ipvs stopped." ;; status) if [ -f /var/lock/subsys/ipvs ]; then echo "ipvs is running." ipvsadm -L -n else echo "ipvs is stopped." fi ;; *) echo "Usage: `basename $0` {start|stop|status}" exit 3 ;; esac DR类型RS脚本示例: #!/bin/bash # vip=172.16.100.33 interface="lo:0" case $1 in start) echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce ifconfig $interface $vip broadcast $vip netmask 255.255.255.255 up route add -host $vip dev $interface ;; stop) echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore echo 0 > /proc/sys/net/ipv4/conf/lo/arp_ignore echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce echo 0 > /proc/sys/net/ipv4/conf/lo/arp_announce ifconfig $interface down ;; status) if ifconfig lo:0 |grep $vip &> /dev/null; then echo "ipvs is running." else echo "ipvs is stopped." fi ;; *) echo "Usage: `basename $0` {start|stop|status}" exit 1 esac
DR类型RS脚本示例:
#!/bin/bash # vip=172.16.100.33 interface="lo:0" case $1 in start) echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce ifconfig $interface $vip broadcast $vip netmask 255.255.255.255 up route add -host $vip dev $interface ;; stop) echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore echo 0 > /proc/sys/net/ipv4/conf/lo/arp_ignore echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce echo 0 > /proc/sys/net/ipv4/conf/lo/arp_announce ifconfig $interface down ;; status) if ifconfig lo:0 |grep $vip &> /dev/null; then echo "ipvs is running." else echo "ipvs is stopped." fi ;; *) echo "Usage: `basename $0` {start|stop|status}" exit 1 esac
转载于:https://blog.51cto.com/zhanx/2341210