centos系统宝塔面板设置定时mysql运行状态的脚本

发布时间: 2024年8月5日 11:47
点击量: 411
Tags:
#!/bin/bash

# MySQL服务名称
MYSQL_SERVICE="mysqld"

# 日志文件路径
LOG_FILE="/var/log/mysql_monitor.log"

# 获取当前时间的函数
get_timestamp() {
    date "+%Y-%m-%d %H:%M:%S"
}

# 检查MySQL状态的函数
check_mysql() {
    if systemctl is-active --quiet $MYSQL_SERVICE; then
        return 0
    else
        return 1
    fi
}

# 重启MySQL的函数
restart_mysql() {
    echo "$(get_timestamp): MySQL已停止,尝试重启..." | tee -a $LOG_FILE
    systemctl restart $MYSQL_SERVICE
    sleep 10  # 等待10秒以确保MySQL有足够时间启动
    if check_mysql; then
        echo "$(get_timestamp): MySQL重启成功" | tee -a $LOG_FILE
    else
        echo "$(get_timestamp): MySQL重启失败,请手动检查" | tee -a $LOG_FILE
    fi
}

# 主要逻辑
echo "$(get_timestamp): 开始检查MySQL状态" | tee -a $LOG_FILE

if check_mysql; then
    echo "$(get_timestamp): MySQL运行正常" | tee -a $LOG_FILE
else
    echo "$(get_timestamp): MySQL未运行" | tee -a $LOG_FILE
    restart_mysql
fi

echo "$(get_timestamp): 检查完成" | tee -a $LOG_FILE
echo "--------------------------" | tee -a $LOG_FILE


评论区