diff --git a/restore.sh b/restore.sh index 4b28e19..00b8cbe 100644 --- a/restore.sh +++ b/restore.sh @@ -101,7 +101,8 @@ SNAPSHOT_PATH=$(echo "$BACKUP_PATH" | cut -d: -f2) PVE_BACKUP_REF="${PBS_STORAGE}:backup/${SNAPSHOT_PATH}" # ── Pfade & Messvariablen ───────────────────────────────────────────────────── -ZIP_DIR="${RESTORE_MOUNT}/zips" +LAST_DATE=$(date +"%Y-%m-%d" -d "1 day ago") +ZIP_DIR="${RESTORE_MOUNT}/zips/${LAST_DATE}" BACKUP_SERVER_HOST=$(cat /opt/windmill-restore/backup_server_host 2>/dev/null \ || echo "backup-server") @@ -463,17 +464,19 @@ echo " ZIP: $(( ZIP_SIZE_BYTES / 1024 / 1024 )) MB in ${ZIP_DURATION}s" # 3 Versuche mit 60s Pause + Größenvergleich lokal vs. remote. # ═════════════════════════════════════════════════════════════════════════════ echo "" -echo "==> [10/12] Rsync → ${BACKUP_SERVER_HOST}:${RSYNC_TARGET}..." +# Rsync-Ziel mit Datumsordner +RSYNC_TARGET_DATE="${RSYNC_TARGET}/${LAST_DATE}" +echo "==> [10/12] Rsync → ${BACKUP_SERVER_HOST}:${RSYNC_TARGET_DATE}..." MAX_RETRIES=3 rsync_transfer() { rsync -avz --progress --timeout=300 \ "$ZIP_FILE" \ - "${BACKUP_SERVER_HOST}:${RSYNC_TARGET}/" \ + "${BACKUP_SERVER_HOST}:${RSYNC_TARGET_DATE}/" \ 2>&1 } -ssh "$BACKUP_SERVER_HOST" "mkdir -p '${RSYNC_TARGET}'" 2>/dev/null || true +ssh "$BACKUP_SERVER_HOST" "mkdir -p '${RSYNC_TARGET_DATE}'" 2>/dev/null || true while [[ $RSYNC_RETRIES -lt $MAX_RETRIES ]]; do if rsync_transfer; then @@ -497,7 +500,7 @@ done if [[ "$RSYNC_OK" == "true" ]]; then REMOTE_SIZE=$(ssh "$BACKUP_SERVER_HOST" \ - "stat -c%s '${RSYNC_TARGET}/$(basename "$ZIP_FILE")'" \ + "stat -c%s '${RSYNC_TARGET_DATE}/$(basename "$ZIP_FILE")'" \ 2>/dev/null || echo "0") if [[ "$REMOTE_SIZE" != "$ZIP_SIZE_BYTES" ]]; then echo " WARNUNG: Remote ${REMOTE_SIZE}B != lokal ${ZIP_SIZE_BYTES}B"