宝塔面板MySQL状态检测脚本

宝塔面板——计划任务——新建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
版权声明:本站部分内容来源于互联网,主要目的在于分享信息,版权归原作者所有。 如涉及侵权,请联系我们,我们将第一时间处理。
下一篇 2025-07-25 02:56:19

相关推荐