大家好,我是飞小优,经常有人遇到宝塔后台中Mysql因内存不足或其他运行跑满CPU导致Mysql停服,因此有时候不能时刻在后台及时处理,那么就需要安排其遇到此种情况自动重启恢复站点正常访问,那么怎么处理?
Mysql停服状态
数据库连接不上导致网站访问不了
解决方案
脚本代码
pgrep -x mysqld &> /dev/null
if [ $? -ne 0 ];then
/etc/init.d/mysqld start
fi
查看运行效果
点击日志查看,看看是否成功,成功会出现successful
以上就是关于当你的网站数据库崩了之后通过添加自动重启数据库脚本实现回复网站正常访问,这样避免站点不稳定导致流量丢失的后果。此外还有一些拓展的关于nginx等脚本设置,有需要的可以自行添加。
扩展脚本安装
PHP监控(PHP56举例)
#!/bin/bash
# Linux监控PHP服务,关闭就自动重启
pgrep -x php-fpm &> /dev/null
if [ $? -ne 0 ];then
/etc/init.d/php-fpm-56 restart
echo "监控到php56已停止,已执行重启计划,时间: `date "+%Y-%m-%d %H:%M:%S"` " >> /www/php_jiankong.log
fi
redis监控
#!/bin/bash
# Linux监控redis服务,关闭就自动重启
pgrep -x redis &> /dev/null
if [ $? -ne 0 ];then
/etc/init.d/redis start
fi
Nginx监控
#!/bin/bash
# Linux监控Nginx服务,关闭就自动重启
nginx_procnum=`ps -ef|grep "nginx"|grep -v grep|wc -l`
if [ $nginx_procnum -eq 0 ]
then
echo $(date) "Success,Nginx重启成功!" >> /var/log/nginxmonitor.log
/etc/init.d/nginx start
else
sleep 5
echo "Nginx正常运行中..."
fi
好了,大家可以自行安装应用到实际项目中,有任何问题可以联系或留言本文章。