最新公告
  • 欢迎您光临 我爱模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境! 立即加入钻石VIP
  • 宝塔Php/Nginx/MySQL数据库自动停止或者掉线后计划任务脚本自动重启

    正文概述 管理员   2025-09-03   9

    有时候打开网站显示数据库连接错误,我就知道这是MySQL数据库自动停止了导致的网站打不开。我们可以在计划任务那里添加一个定时监控脚本,可以定时间监控MySQL、Nginx是否停止,如果停止就执行重启任务,并且记录日志到 /www 目录中。
    原因分析:
    一般遇到这种情况说明网站可能遭遇到了小规模cc攻击,数据库或者服务器内存承受不住而掉线了。人总是精力有限,不可能总长时间去盯着网站。一旦出现宕机,就会导致网站打不开、各类型网站服务中止,长时间也会影响网站排名流量。
    解决方案:

    1、MySQL监控
    定时监控MySQL是否停止了,如果停止就自动重启mysql数据库。
    操作步骤:在宝塔面板,打开计划任务,选择shell脚本,输入任务名称、执行周期、脚本内容。
    脚本内容如下:

    pgrep -x mysqld &> /dev/null
    if [ $? -ne 0 ];then
    bash /www/server/panel/script/rememory.sh
    /etc/init.d/mysqld start
    echo "监控到MySQL已停止,已执行重启计划,时间: `date "+%Y-%m-%d %H:%M:%S"` " >> /www/mysql_jiankong.log
    fi
    
    

    效果如下:

    2、Nginx监控
    操作步骤:在宝塔面板,打开计划任务,选择shell脚本,输入任务名称、执行周期、脚本内容。
    脚本内容如下:

    pgrep -x nginx &> /dev/null
    if [ $? -ne 0 ];then
    /etc/init.d/nginx start
    echo "监控到Nginx已停止,已执行重启计划,时间: `date "+%Y-%m-%d %H:%M:%S"` " >> /www/Nginx_jiankong.log
    fi
    

    监控日志:
    监控重启记录日志存放在www目录:

    一般我们只需要添加MySQL和Nginx监控,添加了以后记得测试一下任务是否有效,去宝塔停止MySQL、Nginx,然后执行一下这个任务,看看MySQL和Nginx状态是否开启。下面提供PHP、redis、memcached,有需要的可以参考。
    3、PHP监控
    操作步骤:在宝塔面板,打开计划任务,选择shell脚本,输入任务名称、执行周期、脚本内容。
    脚本内容如下:
    注意:下面第3行代码中的52~74是指php版本5.2-7.4

    pgrep -x php-fpm &> /dev/null
    if [ $? -ne 0 ];then
    /etc/init.d/php-fpm-{52|53|54|55|56|70|71|73|74 } restart
    echo "监控到php已停止,已执行重启计划,时间: `date "+%Y-%m-%d %H:%M:%S"` " >> /www/php_jiankong.log 
    fi
    
    

    4、redis监控
    脚本内容如下

    pgrep -x redis &> /dev/null
    if [ $? -ne 0 ];then
    /etc/init.d/redis start
    fi
    

    5、memcached监控
    脚本内容如下:

    pgrep -x memcached &> /dev/null
    if [ $? -ne 0 ];then
    /etc/init.d/memcached restart
    fi
    


    我爱模板网 » 宝塔Php/Nginx/MySQL数据库自动停止或者掉线后计划任务脚本自动重启

    发表评论

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者
    script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?587cc1e5c052b5b0ce99533beff13c96"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })();

    请选择支付方式

    ×
    支付宝支付
    余额支付
    ×
    微信扫码支付 0 元