美文网首页
xtrabackup脚本

xtrabackup脚本

作者: SmalltalkVoice | 来源:发表于2025-01-15 11:00 被阅读0次

#!/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