#!/bin/bash

# 备份目录
BACKUP_DIR="/tmp/redisDumps"
# Redis持久化文件路径(根据你的Redis配置文件进行调整)
# 解析命令行参数
while [[ "$#" -gt 0 ]]; do
    case $1 in
        --dumpFile) REDIS_DUMP_FILE="$2"; shift ;;
        *) echo "Unknown parameter passed: $1"; exit 1 ;;
    esac
    shift
done

# 创建备份目录(如果不存在)
mkdir -p $BACKUP_DIR

# 执行Redis的BGSAVE命令来创建快照
redis-cli BGSAVE

# 等待持久化操作完成,可以使用 sleep 来等待几秒钟(视情况而定)
sleep 5

# 检查并重命名现有备份文件
if [ -f $BACKUP_DIR/dump2.rdb ]; then
    echo "Removing existing dump2.rdb"
    rm -f $BACKUP_DIR/dump2.rdb
fi

if [ -f $BACKUP_DIR/dump1.rdb ]; then
    echo "Renaming dump1.rdb to dump2.rdb"
    mv $BACKUP_DIR/dump1.rdb $BACKUP_DIR/dump2.rdb
fi

if [ -f $BACKUP_DIR/dump.rdb ]; then
    echo "Renaming dump.rdb to dump1.rdb"
    mv $BACKUP_DIR/dump.rdb $BACKUP_DIR/dump1.rdb
fi

# 复制新的dump.rdb到备份目录
echo "Copying new dump.rdb to $BACKUP_DIR"
cp $REDIS_DUMP_FILE $BACKUP_DIR/dump.rdb

echo "Backup completed successfully."