#!/bin/bash
#定期归档及清理数据库
#使用方法 ./backup_****_with_conditions.sh
#可以把脚本加入到crontab里面
# 配置参数
DB_USER="XXXX"
DB_PASSWORD="XXX"
DB_NAME="databaseName"
SEVEN_DAYS_AGO=$(date -d "-7 days" '+%Y-%m-%d\ %H:%M:%S') # 需要处理N天前的数据
TABLES=("table1" "table2") # 需要导出的表名列表
WHERE_CONDITIONS=("insert_time < '$SEVEN_DAYS_AGO'" "req_time < '$SEVEN_DAYS_AGO'") # 每个表对应的 WHERE 条件,个数需要与表名列表对应
BACKUP_DIR="/data/logs/backup/sql" # 归档文件位置
DATE=$(date +%Y%m%d_%H%M%S)
DOCKER_CONTAINER="mysql8.0.19" # Docker 容器名称
# 创建备份目录(如果不存在)
mkdir -p "$BACKUP_DIR"
# 日志文件
LOG_FILE="$BACKUP_DIR/backup_$DATE.log"
# 函数:记录日志
log() {
echo "$(date +'%Y-%m-%d %H:%M:%S') - $1"