宝塔MySQL数据库自动停止或者掉线后,检测并自动重启

2023-05-08 305 0

有时候打开网站显示数据库连接错误,我就知道这是MySQL数据库自动停止了导致的网站打不开。我们可以在计划任务那里添加一个定时监控脚本,可以定时间监控MySQL、Nginx是否停止,如果停止就执行重启任务,并且记录日志到 /www 目录中。

原因分析:

一般遇到这种情况说明网站可能遭遇到了小规模cc攻击,数据库或者服务器内存承受不住而掉线了。这种情况通常发生在晚上,因为晚上我们要睡觉,没这个时间去盯着网站,所以就会导致网站打不开、网站排名流量下降。

解决方案:

1、MySQL监控

定时监控MySQL是否停止了,如果停止就自动重启mysql数据库。

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

脚本内容如下:

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

2、Nginx监控

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

脚本内容如下:

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

3、PHP监控

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

脚本内容如下:

注意:下面第3行代码中的52~73是指php版本5.2-7.3

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

4、redis监控

脚本内容如下:

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

5、memcached监控

脚本内容如下:

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

监控日志:

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

一般我们只需要添加MySQL和Nginx监控,其他的不需要添加,我只加了前面2个,添加了以后记得测试一下任务是否有效,去宝塔停止MySQL、Nginx,然后执行一下这个任务,看看MySQL和Nginx状态是否开启。

相关文章

国内自己做的wordpress主题,应该如何使用Poedit软件变成支持多语言的wordpress主题
WordPress建站教程:虚拟主机不能上传Webp格式图片的解决方法
如何在wordpress中开启webp图片
wordpress实现主动推送+熊掌号推送同步进行
php 文章自动发布原理,wordpress每次发布新文章自动提交百度自动推送
解决WordPress禁止上传宽度高度大于2560像素的图片的方法 亲测有效

发布评论

4 + 16 =