自动备份脚本 mysql_hourly_backup.sh
#!/bin/bash
# MySQL Docker 每小时自动备份脚本
# 作者: Auto Backup Script
# 描述: 每小时自动备份MySQL数据库到指定目录,保留24小时备份
set -e # 遇到错误立即退出
# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
# 配置变量
MYSQL_CONTAINER="mysql"
MYSQL_USER="root"
MYSQL_PASSWORD="root123"
BACKUP_DIR="/opt/mysql/backups"
LOG_FILE="/var/log/mysql_backup.log"
RETENTION_HOURS=24 # 保留24小时备份(24个备份文件)
# 日志函数
log_info() {
echo -e "${BLUE}[$(date '+%Y-%m-%d %H:%M:%S')] [INFO]${NC} $1" | tee -a "$LOG_FILE"
}
log_success() {
echo -e "${GREEN}[$(date '+%Y-%m-%d %H:%M:%S')] [SUCCESS]${NC} $1" | tee -a "$LOG_FILE"
}
log_warning() {
echo -e "${YELLOW}[$(date '+%Y-%m-%d %H:%M:%S')] [WARNING]${NC} $1" | tee -a "$LOG_FILE"
}
log_error() {
echo -e "${RED}[$(date '+%Y-%m-%d %H:%M:%S')] [ERROR]${NC} $1" | tee -a "$LOG_FILE"
}
# 检查依赖
check_dependencies() {
if ! command -v docker &> /dev/null; then
log_error "Docker未安装"
exit 1
fi
if ! docker ps | grep -q "$MYSQL_CONTAINER"; then
log_error "MySQL容器未运行: $MYSQL_CONTAINER"
exit 1
fi
}
# 创建备份目录

最低0.47元/天 解锁文章
82

被折叠的 条评论
为什么被折叠?



