美文网首页设计方案
Linux服务器中网站数据库宕机的自动检测及重启脚本

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

作者: 武汉周杰 | 来源:发表于2020-02-28 18:35 被阅读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
    

    相关文章

      网友评论

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

        本文链接:https://www.haomeiwen.com/subject/bbfrhhtx.html