宝塔MySQL服务停止后自动重启的监控功能
最近一直在深入的优化宝塔面板的运维服务,因为我们之前在宝塔面板上默认的服务都是每天每晚上单次的自动重启,但是他有一个弊端就是你的MySQL遇到一些错误的时候,他是不能自动修复的,如果说你只是为一个宝塔面板的手动启动是可以的,但是如果说你维护着五到10台,甚至更多的把它面板这个时候你就需要在计划任务中设置一个监测MySQL服务停止之后可以自动重启的任务。
目前这个操作我已经实测的运营了几天,感觉还是蛮实用的,特别记录下来分享给大家,如果你的宝面板在这方面有需要的话,可以按照我下面的步骤一步一步的去操作,至少目前互联网上一些自动重启的脚本测试过之后效果并没有那么好,具体不同的需求不同的操作方法吧,大家可以根据自己的具体情况来操作。
之前我也有想过通过监控通知的方式来提醒管理员重启MySQL,但是实际用来说并不实用,因为如果你出现多个数据库卡死的状态,就算你的手工去重启反应也是非常慢的,还不如直接用计划任务来自动监控自动重启,这才是完美的解决方案。
1. 创建检测脚本
登录服务器,创建一个Shell脚本(如 /root/mysql_monitor.sh
),内容如下:
#!/bin/bash
# 检测MySQL是否运行
if ! systemctl is-active --quiet mysql; then
echo "[$(date +'%Y-%m-%d %H:%M:%S')] MySQL已停止,正在重启..." >> /root/mysql_monitor.log
systemctl start mysql
fi
赋予脚本执行权限:
chmod +x /root/mysql_monitor.sh
2. 添加宝塔计划任务
- 登录宝塔面板 → 点击左侧「计划任务」。
- 任务类型:选择「Shell脚本」。
- 任务名称:填写「MySQL服务监控」。
- 执行周期:建议每分钟检测一次(选择「每分钟」)。
- 脚本内容:粘贴以下命令:
/root/mysql_monitor.sh
- 点击「添加任务」保存。
3. 验证脚本有效性
- 手动测试:
systemctl stop mysql # 停止MySQL /root/mysql_monitor.sh # 执行脚本 systemctl status mysql # 检查是否启动
- 查看日志:
tail -f /root/mysql_monitor.log
注意事项
- 服务名称:如果MySQL服务名不是
mysql
(如mysqld
),需修改脚本中的服务名称。 - 执行权限:确保宝塔面板用户(如
www
)有权限执行systemctl
命令。 - 频率调整:若服务器负载敏感,可将检测间隔设为5分钟(宝塔面板选择「每5分钟」)。
通过上述步骤,即可实现MySQL服务停止后自动重启的监控功能。
原创文章,作者:超哥,如若转载,请注明出处:https://www.chaoneo.cn/archives/3767.html
如果您觉得超哥分享对您有所帮助的话,记得打赏给我😀