DB/MySQL
MySQLHangUpCheck.sh
swhwang
2016. 5. 4. 01:22
#!/bin/sh
############################## Configuration ##############################
HOSTNAME=`hostname`
SerDate=`date +%Y%m%d`
SerTime=`date +%H%M%S`
FILE_DIR="${DATA_DIR}/LOG/CRON_LOG/DB"
LOG_DIR="${DATA_DIR}/LOG/CRON_LOG"
LOG_NAME="${SerDate}_MYSQL.log"
DBCONN="${MYSQL_HOME}/bin/mysql -S ${MYSQL_SOCK_FILE} -u${MYSQL_USER_ID} -p${MYSQL_USER_PW} ${MYSQL_DB_NAME}"
###########################################################################
if [ ! -d ${FILE_DIR} ]
then
mkdir ${FILE_DIR}
fi
FileCntGet ()
{
Cur_File_Cnt=`cat /DATA1/LOG/WCDMA/L*${SerDate} | wc -l`
touch ${FILE_DIR}/${HOSTNAME}_${SerDate}${SerTime}_${Cur_File_Cnt}
}
MySQLHangUpCheck ()
{
LastFileCnt=`ls ${FILE_DIR} | tail -2 | head -1 | awk -F"_" '{print $3}'`
CurFileCnt=`ls ${FILE_DIR} | tail -2 | tail -1 | awk -F"_" '{print $3}'`
DBConCnt=`ps -ef | grep mysql | grep -v grep | wc -l`
PID=`ps -ef | grep mysql | grep -v grep | awk -F" " '{ if( $1 == "mysql" ) print $2}'`
if [ ${LastFileCnt} -eq ${CurFileCnt} -a ${DBConCnt} -gt 10 ]
then
echo "[${SerDate} ${SerTime}] MySQL Status Exit"
echo "MySQL Connect Count = ${DBConCnt}"
echo "MySQL Kill Operating Now...."
kill -9 ${PID}
else
echo "[${SerDate} ${SerTime}] MySQL Status Normal"
fi
}
FileDel ()
{
find ${LOG_DIR} -name "*MYSQL*" -mtime +7 -exec rm -f {} \;
find ${FILE_DIR} -name "*AIPMS*" -mtime +7 -exec rm -f {} \;
}
############################## Main Start ##############################
#echo "=================== MySQL Hang-Up Check Start ===================" >> ${LOG_DIR}/${LOG_NAME}
##Config Setting
##Call Function
FileCntGet
MySQLHangUpCheck >> ${LOG_DIR}/${LOG_NAME}
FileDel
#echo "==================== MySQL Hang-Up Check End ====================" >> ${LOG_DIR}/${LOG_NAME}