61 lines
1.6 KiB
Bash
Executable File
61 lines
1.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
BACKUP_DIR="$HOME/homey-backup"
|
|
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
|
|
NODE="root@192.168.1.100"
|
|
|
|
NC_DATA_PVC="pvc-5c1f48e3-346f-4c35-8e6a-8fc0c4c3a842-96d72815"
|
|
NC_DB_PVC="pvc-c5b28179-1b9c-462a-be5b-05c4f0bb36ca-5f2dbf4d"
|
|
|
|
NC_DATA_DEST="$BACKUP_DIR/longhorn-nextcloud-data/$TIMESTAMP"
|
|
NC_DB_DEST="$BACKUP_DIR/longhorn-nextcloud-db/$TIMESTAMP"
|
|
|
|
echo "=== Longhorn Volume Backup (Emergency) ==="
|
|
echo "Started: $(date)"
|
|
echo ""
|
|
echo "WARNING: Backing up raw Longhorn volume images"
|
|
echo "These are sparse files - actual data is smaller than file size"
|
|
echo ""
|
|
|
|
mkdir -p "$NC_DATA_DEST"
|
|
mkdir -p "$NC_DB_DEST"
|
|
|
|
echo "--- Backing up Nextcloud data volume ---"
|
|
echo "Source: $NODE:/hda/replicas/$NC_DATA_PVC/"
|
|
echo "Dest: $NC_DATA_DEST/"
|
|
echo ""
|
|
|
|
rsync -avzP --no-owner --no-group --sparse \
|
|
"$NODE:/hda/replicas/$NC_DATA_PVC/" \
|
|
"$NC_DATA_DEST/"
|
|
|
|
echo ""
|
|
echo "Nextcloud volume backup: $(du -sh "$NC_DATA_DEST" | cut -f1)"
|
|
|
|
echo ""
|
|
echo "--- Backing up PostgreSQL volume ---"
|
|
echo "Source: $NODE:/hda/replicas/$NC_DB_PVC/"
|
|
echo "Dest: $NC_DB_DEST/"
|
|
echo ""
|
|
|
|
rsync -avzP --no-owner --no-group --sparse \
|
|
"$NODE:/hda/replicas/$NC_DB_PVC/" \
|
|
"$NC_DB_DEST/"
|
|
|
|
echo ""
|
|
echo "PostgreSQL volume backup: $(du -sh "$NC_DB_DEST" | cut -f1)"
|
|
|
|
echo ""
|
|
echo "=== Backup Complete ==="
|
|
echo "Timestamp: $TIMESTAMP"
|
|
echo "Finished: $(date)"
|
|
|
|
echo ""
|
|
echo "Total backup size:"
|
|
du -sh "$BACKUP_DIR/longhorn-nextcloud-data/$TIMESTAMP" "$BACKUP_DIR/longhorn-nextcloud-db/$TIMESTAMP"
|
|
|
|
echo ""
|
|
echo "NOTE: These are raw Longhorn volume images."
|
|
echo "To restore, copy back to /hda/replicas/ and restart Longhorn."
|