#!/bin/sh
set -x
TIMESTAMP=`date +%Y%m`
LOG=/opt/batch/log/mysqlRestart_${TIMESTAMP}.log
echo "Start execut at `date`." >>${LOG}
# execute sql stat
timeout()
{
waitfor=30
command=$*
$command &
commandpid=$!
( sleep $waitfor ; kill -9 $commandpid > /dev/null 2>&1 && restartMysql ) &
watchdog=$!
sleeppid=$PPID
wait $commandpid > /dev/null 2>&1
kill $sleeppid > /dev/null 2>&1
}
selectsql()
{
cmd="select count(*) from USER"
cnt=$(mysql -h192.168.1.40 -P3306 -uroot -p123456 -s -e "${cmd}")
result=$?
echo "${result}" >>${LOG}
if [[ ${result} = 1 ]];then
restartMysql
else
echo "${cnt}" >>${LOG}
fi
}
restartMysql(){
service mysqld restart
echo "Mysql restart done." >>${LOG}
}
timeout selectsql
echo "End execut at `date`." >>${LOG}
exit;