Add PD to Serenity backup automation scaffolding

This commit is contained in:
Fizzlepoof
2026-05-15 03:08:03 +00:00
parent 295a22bc1f
commit 5f52b2e6cf
6 changed files with 250 additions and 0 deletions

View File

@@ -0,0 +1,51 @@
#!/usr/bin/bash
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
# shellcheck disable=SC1091
source "$SCRIPT_DIR/pd_backup_lib.sh"
ssh_opts="$(ssh_args)"
remote_root="$SERENITY_BACKUP_HOST:$SERENITY_BACKUP_ROOT"
# shellcheck disable=SC2086
ssh $ssh_opts "$SERENITY_BACKUP_HOST" mkdir -p \
"$SERENITY_BACKUP_ROOT/appdata" \
"$SERENITY_BACKUP_ROOT/databases" \
"$SERENITY_BACKUP_ROOT/tank-docker" \
"$SERENITY_BACKUP_ROOT/db-dumps"
rsync_cmd=(
rsync -a --delete
--exclude '*.sqlite-journal'
--exclude '*.db-journal'
--exclude '*.sqlite-wal'
--exclude '*.db-wal'
--exclude '*.tmp'
)
rsync_cmd+=( -e "$(ssh_cmd)" )
run_rsync() {
local label="$1"
shift
echo "$label"
set +e
"${rsync_cmd[@]}" "$@"
local rc=$?
set -e
if [[ $rc -eq 24 ]]; then
echo "rsync completed with vanished-file warning (code 24); treating as acceptable for live appdata."
return 0
fi
return $rc
}
run_rsync "Syncing appdata to Serenity" "$PD_APPDATA_ROOT/" "$remote_root/appdata/"
run_rsync "Syncing database volume roots to Serenity" "$PD_DATABASES_ROOT/" "$remote_root/databases/"
run_rsync "Syncing selected tank docker data to Serenity" "$PD_TANK_DOCKER_ROOT/" "$remote_root/tank-docker/"
run_rsync "Syncing DB dumps to Serenity" "$PD_DB_DUMP_ROOT/" "$remote_root/db-dumps/"
echo "Serenity sync complete: $remote_root"