宝塔面板——计划任务——新建Shell脚本。
填入下方脚本内容,运行频率改为几分钟为宜。
#!/bin/bash
# MySQL状态检测脚本(简洁日志版)
MYSQL_PROC_NUM=$(ps -ef | grep "mysqld" | grep -v grep | wc -l)
MYSQL_PORT_CHECK=$(netstat -tlnp 2>/dev/null | grep ":3306" | grep "mysqld" | wc -l)
TIMESTAMP=$(date "+%Y-%m-%d %H:%M:%S")
# 检测函数(合并进程和端口检查)
check_mysql() {
sleep 1 # 避免状态误判
[ $(ps -ef | grep mysqld | grep -v grep | wc -l) -gt 0 ] && \
[ $(netstat -tlnp 2>/dev/null | grep ":3306" | grep "mysqld" | wc -l) -gt 0 ]
}
# 简洁日志输出
echo "[$TIMESTAMP] 检测MySQL状态..."
if check_mysql; then
echo "[OK] MySQL运行正常"
else
echo "[WARN] MySQL未运行,尝试启动..."
START_RESULT=$(/etc/init.d/mysqld restart 2>&1)
if check_mysql; then
echo "[OK] MySQL已成功启动"
else
echo "[ERROR] 启动失败,最后错误:"
echo "$START_RESULT" | tail -n 1
echo "详细日志:tail -20 /www/server/data/*.err"
fi
fi
版权声明:本站部分内容来源于互联网,主要目的在于分享信息,版权归原作者所有。
如涉及侵权,请联系我们,我们将第一时间处理。