From 791584aa602c6d20935aed27f3f20958a84213a9 Mon Sep 17 00:00:00 2001 From: shuki Date: Fri, 6 Mar 2026 02:56:37 +0200 Subject: [PATCH] Fix MySQL dump remote path to use _mysql/ instead of full temp path Add optional dest_name parameter to transfer_folder to override the remote subpath. MySQL dumps now land in _mysql/ inside the snapshot instead of tmp/gniza-mysql-xxx/_mysql/. Co-Authored-By: Claude Opus 4.6 --- lib/backup.sh | 2 +- lib/transfer.sh | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/backup.sh b/lib/backup.sh index 2df10af..5e293cf 100644 --- a/lib/backup.sh +++ b/lib/backup.sh @@ -128,7 +128,7 @@ _backup_target_impl() { # 9.5. Transfer MySQL dumps if [[ -n "$mysql_dump_dir" && -d "$mysql_dump_dir/_mysql" ]]; then log_info "Transferring MySQL dumps for $target_name..." - if ! transfer_folder "$target_name" "$mysql_dump_dir/_mysql" "$ts" "$prev"; then + if ! transfer_folder "$target_name" "$mysql_dump_dir/_mysql" "$ts" "$prev" "_mysql"; then log_error "Transfer failed for MySQL dumps" transfer_failed=true fi diff --git a/lib/transfer.sh b/lib/transfer.sh index 2663c5a..42d0f31 100644 --- a/lib/transfer.sh +++ b/lib/transfer.sh @@ -114,12 +114,14 @@ rsync_local() { } # Transfer a single folder to a remote snapshot. -# Usage: transfer_folder [prev_snapshot] +# Usage: transfer_folder [prev_snapshot] [dest_name] +# If dest_name is given, use it as the remote subpath instead of deriving from folder_path. transfer_folder() { local target_name="$1" local folder_path="$2" local timestamp="$3" local prev_snapshot="${4:-}" + local dest_name="${5:-}" if [[ ! -d "$folder_path" ]]; then log_warn "Folder not found, skipping: $folder_path" @@ -127,7 +129,7 @@ transfer_folder() { fi # Strip leading / to create relative subpath in snapshot - local rel_path="${folder_path#/}" + local rel_path="${dest_name:-${folder_path#/}}" if _is_rclone_mode; then local snap_subpath="targets/${target_name}/snapshots/${timestamp}/${rel_path}"