📦 Hetzner Storage Box als Offsite-Backup für Proxmox verwenden

🧠 Überblick
Dieses Setup speichert automatisch tägliche Backups deiner Proxmox-VMs und LXC-Container auf deiner Hetzner Storage Box (BX11). Die Backups werden auf dem jeweiligen Server via Proxmox-Plan erstellt und per SSH (Port 23) auf die Storage Box übertragen.
🔐 Voraussetzungen
- Hetzner Storage Box mit SSH aktiviert (Port 23)
- SSH-Key auf der Box eingerichtet (siehe unten)
- Proxmox-Host (lokal oder VPS)
/var/lib/vz
als aktives Backup-Storage
🔧 Schritt 1: SSH-Key auf die Storage Box laden
ssh-keygen -t ed25519 -C "proxmox-storagebox"
cat ~/.ssh/id_ed25519.pub | ssh -p 23 <STORAGEBOX_USER>@<STORAGEBOX_USER>.<STORAGEBOX_HOST> install-ssh-key
ssh -p 23 <STORAGEBOX_USER>@<STORAGEBOX_USER>.<STORAGEBOX_HOST>
📅 Schritt 2: Proxmox GUI – Backup-Job erstellen
- In der Proxmox Web-GUI:
Datacenter → Backup → Add
- Einstellungen:
- Storage:
local
(→/var/lib/vz
) - Selection Mode:
All
oder spezifische VMs/LXCs - Schedule: täglich um
00:00
- Mode:
Snapshot
- Compression:
zstd
- Max backups: z. B.
3
- Storage:
🤖 Schritt 3: Backup-Skript zur Storage Box
Datei erstellen:
nano /root/backup_to_storagebox.sh
Inhalt:
#!/bin/bash
BACKUP_DIR="/var/lib/vz/dump"
REMOTE_USER="<STORAGEBOX_USER>"
REMOTE_HOST="<STORAGEBOX_USER>.<STORAGEBOX_HOST>"
REMOTE_PORT=23
REMOTE_BASE_PATH="/home/<STORAGEBOX_USER>/<BACKUP_FOLDER>"
DATE=$(date +%F)
echo "[INFO] Übertrage Backups nach $REMOTE_HOST..."
ssh -p $REMOTE_PORT ${REMOTE_USER}@${REMOTE_HOST} "mkdir -p ${REMOTE_BASE_PATH}/${DATE}"
rsync -avz -e "ssh -p $REMOTE_PORT" ${BACKUP_DIR}/ ${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_BASE_PATH}/${DATE}/
echo "[INFO] Bereinige lokale Backups älter als 7 Tage..."
find $BACKUP_DIR -type f -mtime +7 -name "*.zst" -delete
echo "[INFO] Backup abgeschlossen: $(date)"
Datei ausführbar machen:
chmod +x /root/backup_to_storagebox.sh
⏰ Schritt 4: Cronjob einrichten
crontab -e
Einfügen:
0 1 * * * /root/backup_to_storagebox.sh >> /var/log/proxmox_storagebox_backup.log 2>&1
🧪 Optional: Testlauf
/root/backup_to_storagebox.sh
Dann per SSH prüfen:
ssh -p 23 <STORAGEBOX_USER>@<STORAGEBOX_USER>.<STORAGEBOX_HOST>
ls /home/<STORAGEBOX_USER>/<BACKUP_FOLDER>/$(date +%F)
🧼 Optional: Alte Remote-Backups aufräumen
ssh -p $REMOTE_PORT ${REMOTE_USER}@${REMOTE_HOST} "find ${REMOTE_BASE_PATH}/* -maxdepth 0 -type d -mtime +10 -exec rm -rf {} \;"
✅ Fazit
Mit dieser Methode hast du ein vollautomatisiertes Offsite-Backup, das sich leicht warten und anpassen lässt – ohne zusätzliche Tools, Agents oder externe Abhängigkeiten.