Navigation
Artikel
Stuff
RSS Feeds
|
Sourcecodes - auto. failover für ipvsSprachenübersicht/Bash Keywords: automatischer failover für ipvs linux virtual server bash script Dieses kleine Bash-Skript sorgt bei einem IPVS-Cluster dafür, dass bei einem Ausfall die übrigen Server die Arbeit übernehmen.
/usr/local/sbin/check-nodes.sh: #!/bin/bash WORKER="192.168.1.11 192.168.1.12" # ip list of workers, seperated by commas BAL_IP="192.168.0.65" # external ip of the balancer NAGIOS="/usr/nagios/libexec" # path to nagios-plugins PORT="80" # which port IPVS_OPTS="-m" # options passed to ipvsadm check_node() { ${NAGIOS}/check_http -H $i -t 5 &> /dev/null NAG=$? if [ ${NAG} -eq 0 ]; then # echo $i "up" return 0 else # echo $i "down" return 255 fi } W=0 #initialize the status-veriables for a in ${WORKER}; do STATUS[${W}]=TRUE; ((W++)) done echo "configuration:" echo "balancer-ip: ${BAL_IP}" echo "worker-ips:" for i in ${WORKER}; do echo ${i} done echo echo while (true); do X=0 for i in ${WORKER}; do check_node RETURN=$? if [ ${RETURN} -eq 255 ] && [ ${STATUS[${X}]} = TRUE ]; then /sbin/ipvsadm -e -t ${BAL_IP}:${PORT} -r ${i}:${PORT} ${IPVS_OPTS} -w0 STATUS[${X}]=FALSE echo "${i} went down" elif [ ${RETURN} -eq 0 ] && [ ${STATUS[${X}]} = FALSE ]; then /sbin/ipvsadm -e -t ${BAL_IP}:${PORT} -r ${i}:${PORT} ${IPVS_OPTS} -w1 STATUS[${X}]=TRUE echo "${i} comes up" else echo "no status change for ${i}" fi ((X++)) done sleep 1 echo done Gibt es noch irgendwelche Fragen, oder wollen Sie über den Artikel diskutieren? Sprachenübersicht/Bash/auto. failover für ipvs |