Последняя активность 6 months ago

redis-sentinel-switch-state.sh Исходник
1#!/bin/sh
2_DEBUG="on"
3DEBUGFILE=/tmp/sentinel_failover.log
4VIP='10.125.125.30'
5MASTERIP=${6}
6MASK='24'
7IFACE='eth0'
8MYIP=$(ip -4 -o addr show dev ${IFACE}| grep -v secondary| awk '{split($4,a,"/");print a[1]}')
9
10DEBUG () {
11 if [ "$_DEBUG" = "on" ]; then
12 $@
13 fi
14}
15
16set -e
17DEBUG date >> ${DEBUGFILE}
18DEBUG echo $@ >> ${DEBUGFILE}
19
20DEBUG echo "Master: ${MASTERIP} My IP: ${MYIP}" >> ${DEBUGFILE}
21if [ ${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
28else
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
34fi
35exit 1