设计方案

Linux服务器中网站数据库宕机的自动检测及重启脚本

2020-02-28  本文已影响0人  武汉周杰

最近一段时间,Linux服务器中的一个重要网站的数据库总是奔溃,导致网站无法正常访问(显示为网站正在维护中),于是就决定写个脚本来自动监控这个网站是否正常,如果发现网站宕机,则自动重启数据库和网站。
解决以上问题的思路如下:

  • 用命令行浏览器(lynx)获取网站首页并存储到一个网页文件(WebIndex.htm);
  • 如果发现这个网页文件(WebIndex.htm)小于某个字节大小,就可以判断目前网站首页显示的是(正在维护中),即网站此时已经不能正常访问了;
  • 调用重启数据库命令(service mysqld restart)和重启网站服务命令(apachectl restart)

主脚本(WebHalt2ReMySQL.sh)

#!/bin/bash

######################################
##                                  ##
##         Web_Halt_To_Re_MySQL     ##
##                                  ##
##             Ver:0.0.1            ##
##                                  ##
##            Code:Zhojie           ##
##                                  ##
##            Date:2017.8           ##
##                                  ##
######################################

WORK_PATH="/Run/Bash/WebHalt2ReMySQL"
LYNX_COMMAND="/usr/bin/lynx"

HtmFilePath=$WORK_PATH"/WebIndex.htm"
HtmFileSize=6000
WebURL="http://sie.whu.edu.cn"

LOG_FILE_PATH=$WORK_PATH"/LogFile.txt"

if [ -f "$HtmFilePath" ]
then    
    cd $WORK_PATH
    rm $HtmFilePath -f
fi

cd $WORK_PATH
$LYNX_COMMAND -dump $WebURL >> $HtmFilePath
HtmFileNum=`ls -al $HtmFilePath|awk '{print $5}'`
if [ $HtmFileNum -lt $HtmFileSize ]
then

    echo "">>$LOG_FILE_PATH
    echo "======== Found Web Service Error , Start Work ========">>$LOG_FILE_PATH
    NowTime=`date +%Y-%m-%d_%H:%M:%S`
    echo "["$NowTime"] WebIndexFile("$HtmFilePath") Size ("$HtmFileNum" < "$HtmFileSize")">>$LOG_FILE_PATH
    
    service mysqld restart
    sleep 10
    apachectl restart

    if [ -f "$HtmFilePath" ]
    then    
        cd $WORK_PATH
        rm $HtmFilePath -f
    fi

    $LYNX_COMMAND -dump $WebURL >> $HtmFilePath
    HtmFileNum=`ls -al $HtmFilePath|awk '{print $5}'`
    NowTime=`date +%Y-%m-%d_%H:%M:%S`
    echo "["$NowTime"] WebIndexFile("$HtmFilePath") Now Size ("$HtmFileNum")">>$LOG_FILE_PATH
    echo "======== Work End !!! (ZhoJie@Gmail.Com) ========">>$LOG_FILE_PATH
    echo "">>$LOG_FILE_PATH

fi

exit 0
上一篇下一篇

猜你喜欢

热点阅读