redis-sentinel-switch-state.sh
· 1.0 KiB · Bash
Исходник
#!/bin/sh
_DEBUG="on"
DEBUGFILE=/tmp/sentinel_failover.log
VIP='10.125.125.30'
MASTERIP=${6}
MASK='24'
IFACE='eth0'
MYIP=$(ip -4 -o addr show dev ${IFACE}| grep -v secondary| awk '{split($4,a,"/");print a[1]}')
DEBUG () {
if [ "$_DEBUG" = "on" ]; then
$@
fi
}
set -e
DEBUG date >> ${DEBUGFILE}
DEBUG echo $@ >> ${DEBUGFILE}
DEBUG echo "Master: ${MASTERIP} My IP: ${MYIP}" >> ${DEBUGFILE}
if [ ${MASTERIP} = ${MYIP} ]; then
if [ $(ip addr show ${IFACE} | grep ${VIP} | wc -l) = 0 ]; then
sudo /sbin/ip addr add ${VIP}/${MASK} dev ${IFACE}
DEBUG echo "sudo /sbin/ip addr add ${VIP}/${MASK} dev ${IFACE}" >> ${DEBUGFILE}
sudo /usr/sbin/arping -q -c 3 -A ${VIP} -I ${INTERFACE}
fi
exit 0
else
if [ $(ip addr show ${IFACE} | grep ${VIP} | wc -l) != 0 ]; then
sudo /sbin/ip addr del ${VIP}/${MASK} dev ${IFACE}
DEBUG echo "sudo /sbin/ip addr del ${VIP}/${MASK} dev ${IFACE}" >> ${DEBUGFILE}
fi
exit 0
fi
exit 1
| 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 |