feat: enhance backup process for PostgreSQL data
- Added special handling for PostgreSQL data directories to ensure proper backup of the `pg_wal` folder. - Backup now distinguishes between standard and PostgreSQL specific logic, improving the reliability of database backups. - Implemented warnings suppression for unchanged files to prevent clutter during backups. This update improves the robustness of the backup process, ensuring that PostgreSQL data is handled correctly while also maintaining standard directory backup functionality, providing better clarity and usability to users performing backups.
This commit is contained in:
parent
f27876c6ab
commit
53347b6ca6
@ -53,20 +53,30 @@ data:
|
||||
DIR_NAME=$(basename "$dir")
|
||||
TIMESTAMP=$(date +%Y-%m-%d-%H-%M-%S)
|
||||
BACKUP_NAME="backup-${DIR_NAME}-${TIMESTAMP}.tar.gz"
|
||||
TEMP_DIR="/tmp/data/${TIMESTAMP}/"
|
||||
BACKUP_PATH="/tmp/${BACKUP_NAME}"
|
||||
SOURCE_SIZE=$(du -sh /data/local-csi | cut -f1)
|
||||
|
||||
echo "正在备份目录: $dir"
|
||||
|
||||
mkdir -p "$TEMP_DIR/$DIR_NAME"
|
||||
rsync -a "/data/local-csi/$DIR_NAME/" "$TEMP_DIR/$DIR_NAME/"
|
||||
# 创建备份压缩包
|
||||
# tar -czf "$BACKUP_PATH" -C "/data/local-csi" "$DIR_NAME"
|
||||
tar -czf "$BACKUP_PATH" -C "$TEMP_DIR" "$DIR_NAME"
|
||||
if [[ "$DIR_NAME" == *"pg"* ]] && [ -d "/data/local-csi/$DIR_NAME/pg_wal" ]; then
|
||||
echo "检测到 PostgreSQL 数据目录,使用特殊处理..."
|
||||
|
||||
# 清理临时目录
|
||||
rm -rf "$TEMP_DIR"
|
||||
TEMP_DIR="/tmp/data/${TIMESTAMP}/"
|
||||
|
||||
mkdir -p "$TEMP_DIR/$DIR_NAME"
|
||||
rsync -a "/data/local-csi/$DIR_NAME/" "$TEMP_DIR/$DIR_NAME/"
|
||||
# 创建备份压缩包
|
||||
tar -czf "$BACKUP_PATH" -C "$TEMP_DIR" "$DIR_NAME"
|
||||
|
||||
# 清理临时目录
|
||||
rm -rf "$TEMP_DIR"
|
||||
else
|
||||
# tar -czf "$BACKUP_PATH" -C "/data/local-csi" "$DIR_NAME"
|
||||
# 普通目录使用标准备份,但忽略文件变更警告
|
||||
tar --warning=no-file-changed -czf "$BACKUP_PATH" -C "/data/local-csi" "$DIR_NAME" || {
|
||||
echo "备份 $DIR_NAME 时出现警告,继续处理..."
|
||||
}
|
||||
fi
|
||||
|
||||
# 计算上传路径
|
||||
BACKUP_TARGET_PATH="s3://${S3_BUCKET}/${S3_SUBPATH}/${HOSTNAME}/${DIR_NAME}/"
|
||||
|
Loading…
Reference in New Issue
Block a user