33 lines
1.0 KiB
Bash
33 lines
1.0 KiB
Bash
|
#!/usr/bin/env bash
|
||
|
set -euo pipefail
|
||
|
|
||
|
### CONFIG ###
|
||
|
PROXMOX_HOST="root@38.102.127.162"
|
||
|
PROXMOX_TMP="/var/lib/vz/dump"
|
||
|
VMIDS=(102)
|
||
|
DEST_HOST="root@thevault.bounceme.net"
|
||
|
DEST_PATH="/mnt/backup3/vzdump"
|
||
|
TIMESTAMP=$(date +%F_%H-%M)
|
||
|
RETENTION_DAYS=7
|
||
|
|
||
|
echo "📦 Starting remote VM backup via Proxmox..."
|
||
|
|
||
|
for VMID in "${VMIDS[@]}"; do
|
||
|
echo "🧠 Telling Proxmox to back up VM $VMID..."
|
||
|
ssh "$PROXMOX_HOST" "vzdump $VMID --dumpdir $PROXMOX_TMP --mode snapshot --compress zstd --quiet"
|
||
|
|
||
|
echo "📂 Locating backup file for VM $VMID on Proxmox..."
|
||
|
LATEST_FILE=$(ssh "$PROXMOX_HOST" "ls -t $PROXMOX_TMP/vzdump-qemu-${VMID}-*.zst | head -n 1")
|
||
|
|
||
|
echo "🚀 Transferring backup to thevault..."
|
||
|
ssh "$PROXMOX_HOST" "rsync -av '$LATEST_FILE' '$DEST_HOST:$DEST_PATH/'"
|
||
|
|
||
|
echo "🧹 Cleaning up Proxmox local file..."
|
||
|
ssh "$PROXMOX_HOST" "rm -f '$LATEST_FILE'"
|
||
|
done
|
||
|
|
||
|
echo "🧹 Pruning old backups on thevault..."
|
||
|
ssh "$DEST_HOST" "find '$DEST_PATH' -type f -mtime +$RETENTION_DAYS -name 'vzdump-qemu-*.zst' -delete"
|
||
|
|
||
|
echo "✅ KodakMoment VM-host remote backup complete."
|