From b75644260072018695e19cc8c04453548a84e1cf Mon Sep 17 00:00:00 2001 From: Antigravity Date: Sun, 17 May 2026 15:26:00 +0000 Subject: [PATCH] fix: offsite-sync configured for both Synology NAS --- scripts/backup/offsite-sync.sh | 43 ++++++++++++++++++++-------------- 1 file changed, 26 insertions(+), 17 deletions(-) diff --git a/scripts/backup/offsite-sync.sh b/scripts/backup/offsite-sync.sh index 37b2114..2008258 100755 --- a/scripts/backup/offsite-sync.sh +++ b/scripts/backup/offsite-sync.sh @@ -2,8 +2,11 @@ set -euo pipefail SNAPSHOT_DIR="/opt/memento/backups/snapshots" -REMOTE_HOST="${BACKUP_REMOTE_HOST:-}" -REMOTE_PATH="${BACKUP_REMOTE_PATH:-/opt/memento-offsite-backups}" +SSH_KEY="/root/.ssh/memento-nas" +NAS1="sepehr@192.168.1.132" +NAS1_PATH="/volume1/backups/memento" +NAS2="sepehr@192.168.1.146" +NAS2_PATH="/volume1/backups/memento" LOG_FILE="/opt/memento/backups/backup.log" log() { @@ -22,12 +25,6 @@ send_alert() { log "=== Offsite backup sync ===" -if [ -z "$REMOTE_HOST" ]; then - log "WARNING: No BACKUP_REMOTE_HOST configured. Skipping offsite sync." - log "Set BACKUP_REMOTE_HOST=user@server in /opt/memento/.env.docker for offsite backups" - exit 0 -fi - LATEST=$(ls -t "$SNAPSHOT_DIR"/*.sql.gz 2>/dev/null | head -1) if [ -z "$LATEST" ]; then log "ERROR: No snapshots to sync" @@ -35,13 +32,25 @@ if [ -z "$LATEST" ]; then exit 1 fi -log "Syncing $LATEST to $REMOTE_HOST:$REMOTE_PATH" -rsync -az --chmod=F600 "$SNAPSHOT_DIR/" "${REMOTE_HOST}:${REMOTE_PATH}/" 2>&1 | tee -a "$LOG_FILE" +for NAS_ADDR in "$NAS1" "$NAS2"; do + if [ "$NAS_ADDR" = "$NAS1" ]; then + NAS_PATH="$NAS1_PATH" + NAS_NAME="NAS1 (192.168.1.132)" + else + NAS_PATH="$NAS2_PATH" + NAS_NAME="NAS2 (192.168.1.146)" + fi -if [ $? -eq 0 ]; then - log "Offsite sync complete" -else - log "ERROR: Offsite sync failed!" - send_alert "🚨 MEMENTO: Offsite backup sync FAILED! Check rsync connectivity." - exit 1 -fi + log "Syncing to $NAS_NAME..." + ssh -i "$SSH_KEY" -o StrictHostKeyChecking=no "$NAS_ADDR" "mkdir -p $NAS_PATH" 2>/dev/null + rsync -az -e "ssh -i $SSH_KEY -o StrictHostKeyChecking=no" --chmod=F600 "$SNAPSHOT_DIR/" "${NAS_ADDR}:${NAS_PATH}/" 2>&1 | tee -a "$LOG_FILE" + + if [ $? -eq 0 ]; then + log "$NAS_NAME: sync complete" + else + log "ERROR: $NAS_NAME sync failed!" + send_alert "🚨 MEMENTO: Offsite backup FAILED for $NAS_NAME!" + fi +done + +log "=== All offsite syncs complete ==="