From 6af80ad29c4b7c4fe6fbddfd5358f6ca28ab1928 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andor=20Szab=C3=B3?= Date: Wed, 14 Jan 2026 12:59:10 +0200 Subject: [PATCH] finding the latest site archive directory --- development/download-backups.sh | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/development/download-backups.sh b/development/download-backups.sh index 2363fd2b..c7915d1f 100644 --- a/development/download-backups.sh +++ b/development/download-backups.sh @@ -10,7 +10,6 @@ fi SITE_NAME="$1" SERVER="root@188.245.211.114" LIVE_PATH="/var/lib/docker/volumes/frappe-deployment_sites/_data/${SITE_NAME}/private/backups/" -ARCHIVED_PATH="/home/frappe/frappe-bench/archived/sites/${SITE_NAME}/private/backups" # Load environment variables from .env file source .env @@ -18,16 +17,31 @@ source .env # Function to download from archived location download_from_archive() { echo "Checking archived location..." - if sshpass -p "$HETZNER_SSH_PASSWORD" ssh "$SERVER" "docker exec frappe-deployment-backend-1 test -d '${ARCHIVED_PATH}'"; then - echo "Site is archived. Downloading from archived location..." - # Copy from container to host temp location, then scp to local - TEMP_DIR="/tmp/backup_${SITE_NAME}" - sshpass -p "$HETZNER_SSH_PASSWORD" ssh "$SERVER" "rm -rf ${TEMP_DIR} && docker cp frappe-deployment-backend-1:${ARCHIVED_PATH} ${TEMP_DIR}" - sshpass -p "$HETZNER_SSH_PASSWORD" scp -r "${SERVER}:${TEMP_DIR}" ./development/backups - sshpass -p "$HETZNER_SSH_PASSWORD" ssh "$SERVER" "rm -rf ${TEMP_DIR}" + ARCHIVED_BASE="/home/frappe/frappe-bench/archived/sites" - echo "Download complete." + # Find the latest archived directory matching the site name pattern (sorted by modification time) + LATEST_ARCHIVED=$(sshpass -p "$HETZNER_SSH_PASSWORD" ssh "$SERVER" "docker exec frappe-deployment-backend-1 sh -c \"ls -td ${ARCHIVED_BASE}/${SITE_NAME}* 2>/dev/null | head -1\"") + + if [ -n "$LATEST_ARCHIVED" ]; then + ARCHIVED_BACKUP_PATH="${LATEST_ARCHIVED}/private/backups" + echo "Found latest archived site: ${LATEST_ARCHIVED}" + + # Check if backup directory exists in the archived site + if sshpass -p "$HETZNER_SSH_PASSWORD" ssh "$SERVER" "docker exec frappe-deployment-backend-1 test -d '${ARCHIVED_BACKUP_PATH}'"; then + echo "Downloading from archived location..." + + # Copy from container to host temp location, then scp to local + TEMP_DIR="/tmp/backup_${SITE_NAME}" + sshpass -p "$HETZNER_SSH_PASSWORD" ssh "$SERVER" "rm -rf ${TEMP_DIR} && docker cp frappe-deployment-backend-1:${ARCHIVED_BACKUP_PATH} ${TEMP_DIR}" + sshpass -p "$HETZNER_SSH_PASSWORD" scp -r "${SERVER}:${TEMP_DIR}" ./development/backups + sshpass -p "$HETZNER_SSH_PASSWORD" ssh "$SERVER" "rm -rf ${TEMP_DIR}" + + echo "Download complete." + else + echo "Error: Backup directory not found in archived site ${LATEST_ARCHIVED}." + exit 1 + fi else echo "Error: Site ${SITE_NAME} not found in live or archived locations." exit 1