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 <noreply@anthropic.com>
This commit is contained in:
shuki
2026-03-06 02:56:37 +02:00
parent fa01f1c3ea
commit 791584aa60
2 changed files with 5 additions and 3 deletions

View File

@@ -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

View File

@@ -114,12 +114,14 @@ rsync_local() {
}
# Transfer a single folder to a remote snapshot.
# Usage: transfer_folder <target_name> <folder_path> <timestamp> [prev_snapshot]
# Usage: transfer_folder <target_name> <folder_path> <timestamp> [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}"