#!/bin/sh # # -- check mysql slave # -- san2(at)wdb.co.kr # -- 2005.01.04 : patch # -- 2005.01.01 : patch # -- 2004.12.13 : patch # -- 2004.10.08 : new build SHELL="/bin/sh" CMD="/usr/local/etc/rc.d/mysql-slave.sh" LOGFILE="/databases/mysqldlog/slave-restart.log" IFS=' ' ## check mysql slave ## [ ! -f $CMD ] && exit 0 [ X"`id -u 2>/dev/null`" != X"0" ] && exit 1 ## required root privileges STATUS=`$SHELL $CMD status 2>/dev/null` [ -z "${STATUS}" ] && { echo -n '[start]' >> $LOGFILE date >> $LOGFILE $SHELL $CMD start >/dev/null 2>&1 exit 0 } ## patch 2004.12.13 ## do not check 23:55 ~ 00:10 # CTIME=`/bin/date '+%H%M' 2>/dev/null` [ "$CTIME" -le 10 -o "$CTIME" -ge 2355 ] && exit 0 RESULT=0 i=0 for n in $STATUS ; do MASTER_VAL=`echo "$n" | awk '{print $1}'` SLAVE_VAL=`echo "$n" | awk '{print $2}'` case $i in #2) # [ X"${MASTER_VAL}" != X"${SLAVE_VAL}" ] && RESULT=1 # ;; #3) # [ "${MASTER_VAL}" -gt $(($SLAVE_VAL+200)) ] && RESULT=$(($RESULT+2)) # ;; 4|5) [ "X`echo ${SLAVE_VAL} | grep -i 'Yes$'`" = "X" ] && RESULT=$(($RESULT+4)) ;; esac i=$(($i+1)) done ## skip RESULT=1 ## [ "$RESULT" -gt 1 ] && { echo -n "[restart] $RESULT " >> $LOGFILE date >> $LOGFILE $SHELL $CMD stop >/dev/null 2>&1 && $SHELL $CMD start >/dev/null 2>&1 } exit 0