58 lines
1.5 KiB
Bash
58 lines
1.5 KiB
Bash
#!/bin/bash
|
|
#
|
|
# echo $1 $2 is in $3 state > /var/run/keepalive.state
|
|
#
|
|
|
|
###############################################################
|
|
# Check Keepalived State #
|
|
# #
|
|
# Author: Zhivko Todorov <ztodorov@neterra.net> #
|
|
# Date: 01-Dec-2015 #
|
|
# Version: 0.0.1 #
|
|
# License: GPL #
|
|
###############################################################
|
|
|
|
|
|
# set to 'true' if the host is supposed to be in MASTER state
|
|
# or set to 'false' if the host is supposed to be in BACKUP state
|
|
# nrpe cannot receive external variables UNLESS is forced in config
|
|
MASTER='true'
|
|
|
|
# checking if there are alive keepalived processes so we can trust the content of the notify 'state' file
|
|
KEEPALIVENUM=`ps uax|grep '/usr/sbin/keepalived --dont-fork'|grep -v grep|wc -l|tr -d "\n"`
|
|
|
|
if [ $KEEPALIVENUM -gt 0 ]; then
|
|
|
|
KEEPALIVESTATE=`cat /var/run/keepalive.state`
|
|
|
|
if [ "$MASTER" == "true" ]; then
|
|
|
|
if [[ $KEEPALIVESTATE == *"MASTER"* ]];then
|
|
echo $KEEPALIVESTATE
|
|
exit 0
|
|
fi
|
|
|
|
if [[ $KEEPALIVESTATE == *"BACKUP"* ]];then
|
|
echo $KEEPALIVESTATE
|
|
exit 0
|
|
fi
|
|
|
|
else
|
|
|
|
if [[ $KEEPALIVESTATE == *"BACKUP"* ]];then
|
|
echo $KEEPALIVESTATE
|
|
exit 0
|
|
fi
|
|
|
|
if [[ $KEEPALIVESTATE == *"MASTER"* ]];then
|
|
echo $KEEPALIVESTATE
|
|
exit 2
|
|
fi
|
|
|
|
fi
|
|
fi
|
|
|
|
echo "Keepalived is in UNKNOWN state"
|
|
exit 3
|
|
|