| 1 | #!/bin/sh |
| 2 | _DEBUG="on" |
| 3 | DEBUGFILE=/tmp/sentinel_failover.log |
| 4 | VIP='10.125.125.30' |
| 5 | MASTERIP=${6} |
| 6 | MASK='24' |
| 7 | IFACE='eth0' |
| 8 | MYIP=$(ip -4 -o addr show dev ${IFACE}| grep -v secondary| awk '{split($4,a,"/");print a[1]}') |
| 9 | |
| 10 | DEBUG () { |
| 11 | if [ "$_DEBUG" = "on" ]; then |
| 12 | $@ |
| 13 | fi |
| 14 | } |
| 15 | |
| 16 | set -e |
| 17 | DEBUG date >> ${DEBUGFILE} |
| 18 | DEBUG echo $@ >> ${DEBUGFILE} |
| 19 | |
| 20 | DEBUG echo "Master: ${MASTERIP} My IP: ${MYIP}" >> ${DEBUGFILE} |
| 21 | if [ ${MASTERIP} = ${MYIP} ]; then |
| 22 | if [ $(ip addr show ${IFACE} | grep ${VIP} | wc -l) = 0 ]; then |
| 23 | sudo /sbin/ip addr add ${VIP}/${MASK} dev ${IFACE} |
| 24 | DEBUG echo "sudo /sbin/ip addr add ${VIP}/${MASK} dev ${IFACE}" >> ${DEBUGFILE} |
| 25 | sudo /usr/sbin/arping -q -c 3 -A ${VIP} -I ${INTERFACE} |
| 26 | fi |
| 27 | exit 0 |
| 28 | else |
| 29 | if [ $(ip addr show ${IFACE} | grep ${VIP} | wc -l) != 0 ]; then |
| 30 | sudo /sbin/ip addr del ${VIP}/${MASK} dev ${IFACE} |
| 31 | DEBUG echo "sudo /sbin/ip addr del ${VIP}/${MASK} dev ${IFACE}" >> ${DEBUGFILE} |
| 32 | fi |
| 33 | exit 0 |
| 34 | fi |
| 35 | exit 1 |
waja / gist:edf93ea470c945bb9c22c0cd517e80df
Last active 3 months ago