xtrabackup脚本
#!/bin/bash
# 配置
BACKUP_BASE_DIR="/backup/mysql"
BACKUP_DIR="$BACKUP_BASE_DIR/full_backup" # 临时备份目录
FINAL_BACKUP_DIR="$BACKUP_BASE_DIR/backups" # 最终备份文件存储目录
MYSQL_USER="root"
MYSQL_PASSWORD="your_password"
DATE=$(date +%Y%m%d_%H%M%S)
RETENTION_DAYS=7 # 保留最近 7 天的备份
# 创建目录
mkdir -p $BACKUP_DIR
mkdir -p $FINAL_BACKUP_DIR
# 清理临时备份目录
echo "Cleaning up temporary backup directory..."
rm -rf $BACKUP_DIR/*
# 执行备份
echo "Starting MySQL backup..."
xtrabackup --backup --user=$MYSQL_USER --password=$MYSQL_PASSWORD --target-dir=$BACKUP_DIR
# 检查备份是否成功
if [ $? -eq 0 ]; then
echo "Backup completed successfully."
# 准备备份
echo "Preparing backup..."
xtrabackup --prepare --target-dir=$BACKUP_DIR
# 压缩备份
echo "Compressing backup..."
tar -czvf $FINAL_BACKUP_DIR/full_backup_$DATE.tar.gz -C $BACKUP_DIR .
# 清理临时备份目录
echo "Cleaning up temporary backup directory..."
rm -rf $BACKUP_DIR/*
# 删除旧备份(保留最近 $RETENTION_DAYS 天的备份)
echo "Deleting old backups..."
find $FINAL_BACKUP_DIR -name "full_backup_*.tar.gz" -type f -mtime +$RETENTION_DAYS -exec rm -f {} \;
echo "Backup and cleanup completed successfully."
else
echo "Backup failed. Please check the logs."
# 清理临时备份目录(即使备份失败)
rm -rf $BACKUP_DIR/*
exit 1
fi
本文标题:xtrabackup脚本
本文链接:https://www.haomeiwen.com/subject/ndiwyjtx.html
网友评论