#!/bin/bash
set -x
MYSQL=/usr/bin/mysql
MYSQL_HOST=localhost
MYSQL_USER='check_mysql'
MYSQL_PASSWORD=''
CHECK_TIME=3
#mysql is working MYSQL_OK is 1 , mysql down MYSQL_OK is 0
MYSQL_OK=1
function check_mysql_health (){
running_bak=`ps -AF | grep "single-transaction --all-databases --triggers --routines --flush-logs" | grep -v "grep" | wc -l`;
if [ $running_bak -ne 0 ]; then
return $MYSQL_OK;
fi
$MYSQL -h$MYSQL_HOST -u$MYSQL_USER -e"show status;" >/dev/null 2>&1
if [ $? = 0 ] ;then
MYSQL_OK=1
else
MYSQL_OK=0
fi
return $MYSQL_OK
}
while [ $CHECK_TIME -ne 0 ]
do
let "CHECK_TIME -= 1"
check_mysql_health
if [ $MYSQL_OK = 1 ] ; then
CHECK_TIME=0
exit 0
fi
if [ $MYSQL_OK -eq 0 ] && [ $CHECK_TIME -eq 0 ]
then
/etc/init.d/keepalived stop
exit 1
fi
sleep 1
done
check_mysql.sh
最新推荐文章于 2021-02-03 09:18:00 发布