Die Übersicht
Dieses Backup-System folgt der bewährten 3-2-1-Regel: drei Kopien deiner Daten, auf zwei unterschiedlichen Medien, davon eine außerhalb des Standorts. Es schützt vor Hardware-Ausfällen, versehentlichem Löschen, Ransomware-Befall und sogar physischen Katastrophen wie Brand oder Diebstahl.
Die Komponenten im Überblick
Die 3-2-1-Architektur
┌──────────────────────────────────────────────────────────────────┐ │ │ │ PRIMÄR scpve (192.168.178.8) │ │ ├── CT 100 121-CoolDB-Catta │ │ ├── CT 122 g50zeiten │ │ ├── CT 123 g50risc │ │ ├── CT 131 Docker-Debian │ │ ├── CT 132 Webserver-nginx │ │ └── VM 101 Netwatch │ │ │ │ pveforum (192.168.178.192) │ │ ├── CT 102 Nextcloud │ │ ├── VM 103 VPN │ │ └── VM 105 Dashy │ │ │ │ │ │ │ ▼ │ │ │ │ STUFE 1 — LOKAL backup-lokal-sata │ │ /ZFS-POOL3-SATA/backups (nur scpve) │ │ │ │ │ │ │ ▼ │ │ │ │ STUFE 2 — NETZWERK DSSEC (192.168.178.3) │ │ /volume1/Backups-Proxmox-Mini-IP-8 │ │ /volume1/Backups-Proxmox-pveforum-IP-192 │ │ + host-config beider Hosts │ │ │ │ │ │ │ ▼ │ │ │ │ STUFE 3 — OFF-SITE pCloud EU (via rclone) │ │ Backups-Proxmox-Mini-IP-8/ │ │ Backups-Proxmox-pveforum-IP-192/ │ │ Lexware-Sicherung/ │ │ │ │ │ │ │ ▼ │ │ │ │ BENACHRICHTIGUNG Email an scatta@gmx.de bei jedem Lauf │ │ │ └──────────────────────────────────────────────────────────────────┘
Zeitplan im Tagesverlauf
Proxmox-Backups: Lokal & Synology je 3+7 täglich + 4 wöchentlich (+ 6 monatlich für Synology) | pCloud: max. 3 Tagessets
Host-Configs: Letzte 3 Backups pro Host (wöchentlich)
Lexware: Vollständiger Spiegel — keine Löschung in pCloud (sammelt sich seit 2018 an)
Backups, die nicht getestet wurden, existieren nicht. Backups, die nicht automatisch laufen, existieren bald nicht mehr.
Host scpve · MiniPC
Der MiniPC (192.168.178.8) ist der Hauptserver mit den meisten VMs und Containern. Er verfügt über drei separate ZFS-Pools, was uns die Möglichkeit gibt, ein lokales Backup auf einer separaten Platte abzulegen.
Storage-Layout
| Storage | Typ | Größe | Verwendung |
|---|---|---|---|
ZFS-POOL1 | ZFS | 3.62 TB | Laufende VMs/CTs |
ZFS-POOL3 | ZFS | 928 GB | Reserve |
ZFS-POOL3-SATA | ZFS | 464 GB | Lokales Backup |
backup-lokal-sata | Verzeichnis | 464 GB | VZDump-Ziel (lokal) |
synology-minipc | SMB/CIFS | 13 TB | VZDump-Ziel (Synology) |
Aufbau Schritt für Schritt
-
ZFS-Dataset für lokales Backup anlegen
Auf scpve per SSH:
zfs create ZFS-POOL3-SATA/backups ls -la /ZFS-POOL3-SATA/
-
Verzeichnis-Storage in PVE anlegen
Rechenzentrum → Storage → Hinzufügen → Verzeichnis
ID backup-lokal-sataVerzeichnis /ZFS-POOL3-SATA/backupsInhalt Backup (VZDump) Knoten scpve Aktivieren ✓ -
SMB-Storage für Synology anlegen
Rechenzentrum → Storage → Hinzufügen → SMB/CIFS
ID synology-minipcServer 192.168.178.3Benutzername steffenShare Backups-Proxmox-Mini-IP-8Inhalt Backup Knoten scpve -
Zwei Backup-Jobs einrichten
Rechenzentrum → Backup → Hinzufügen — beide Jobs:
Job 1 — Lokales Backup
Storage: backup-lokal-sata Zeitplan: 02:00 Auswahlmodus: Alle Kompression: ZSTD Modus: Snapshot Aufbewahrung: keep-last=3, keep-daily=7, keep-weekly=4
Job 2 — Synology-Backup
Storage: synology-minipc Zeitplan: 03:30 Auswahlmodus: Alle Kompression: ZSTD Modus: Snapshot Aufbewahrung: keep-last=3, keep-daily=7, keep-weekly=4, keep-monthly=6
-
Verifikation
cat /etc/pve/jobs.cfg ls -lh /ZFS-POOL3-SATA/backups/dump/ ls -lh /mnt/pve/synology-minipc/dump/
Das lokale Backup auf der SATA-Platte ist schnell (~5 Min) und schützt vor Plattenausfall des Hauptpools. Das Synology-Backup ist die echte Off-Site-Kopie. Bei Ausfall der Synology funktioniert der lokale Job trotzdem.
Host pveforum
Der zweite Proxmox-Host (192.168.178.192) hat nur eine NVMe und eine HDD. Da beide physisch separat sind, könnten wir theoretisch ein lokales Backup einrichten — wir verzichten aber bewusst darauf, weil Nextcloud auf ZFS-2 liegt und ein lokales Backup auf derselben Platte wenig Schutz bietet. Die Synology übernimmt die alleinige Backup-Verantwortung.
Storage-Layout
| Storage | Typ | Größe | Verwendung |
|---|---|---|---|
ZFS-2 | ZFS auf sda (1.8 TB) | 1.81 TB | Nextcloud, VPN |
local-lvm | LVM-Thin auf NVMe | 816 GB | Dashy (CT 105) |
synology-pveforum | SMB/CIFS | 13 TB | VZDump-Ziel |
Aufbau Schritt für Schritt
-
SMB-Storage für Synology anlegen
Rechenzentrum → Storage → Hinzufügen → SMB/CIFS
ID: synology-pveforum Server: 192.168.178.3 Benutzername: steffen Share: Backups-Proxmox-pveforum-IP-192 Inhalt: Backup Knoten: pveforum
-
Backup-Job anlegen
Storage: synology-pveforum Zeitplan: 02:30 Auswahlmodus: Alle Kompression: ZSTD Modus: Snapshot Aufbewahrung: keep-last=3, keep-daily=7, keep-weekly=4, keep-monthly=6
-
Mount und Test
ls -la /mnt/pve/synology-pveforum/ cat /etc/pve/jobs.cfg
Im Nextcloud-Container (CT 102) lief ein internes Backup-Skript, das Backups in /root/nextcloud-backups/ sammelte (50 Stück á 4.3 GB = 214 GB!). Dieses Skript wurde deaktiviert, weil Proxmox jetzt den kompletten Container sichert. Periodisch prüfen, dass dort nichts wieder aufläuft:
pct enter 102 du -sh /root/ crontab -l exit
Synology DSSEC
Die Synology DSSEC (192.168.178.3) ist das zentrale Sicherungs-Sammelbecken. Sie speichert alle Proxmox-Backups, die Host-Configs und dient als Quelle für den pCloud-Upload.
Ordnerstruktur
/volume1/ ├── Backups-Proxmox-Mini-IP-8/ # scpve VM/CT-Backups │ ├── dump/ # vzdump-*.tar.zst Dateien │ ├── images/ │ └── host-config/ # /etc/pve Sicherungen │ ├── Backups-Proxmox-pveforum-IP-192/ # pveforum VM/CT-Backups │ ├── dump/ │ ├── images/ │ └── host-config/ │ ├── _SICHERUNGEN/ │ └── Lexware Sicherung/ # Lexware-Daten (ZIP-Archive) │ └── scripts/ ├── sync-to-pcloud.sh # Das pCloud-Sync-Skript └── pcloud-sync.log # Aktuelles Logfile
SMB-Freigaben einrichten
-
Gemeinsamen Ordner erstellen
Systemsteuerung → Gemeinsamer Ordner → Erstellen
- Name:
Backups-Proxmox-Mini-IP-8bzw.Backups-Proxmox-pveforum-IP-192 - Volume:
volume1 - Papierkorb: aus (Backups brauchen das nicht)
- Daten-Prüfsumme: ein
- Name:
-
SMB aktivieren
Systemsteuerung → Dateidienste → SMB → SMB aktivieren
-
Berechtigungen vergeben
Pro Ordner: User
steffenoder einen dedizierten Backup-User mit Lese-/Schreibrechten autorisieren. -
Optional: SSH aktivieren
Für rclone-Installation: Systemsteuerung → Terminal & SNMP → SSH-Dienst aktivieren
Host-Config-Backup
Die VZDump-Backups sichern nur VMs und Container — nicht aber die Proxmox-Host-Konfiguration selbst. Bei einem Totalausfall des Hosts (z. B. SSD defekt, Neuinstallation nötig) wären Cluster-Konfig, Storage-Definitionen, Netzwerk und User verloren. Das ändert dieses Skript.
Was gesichert wird
| Pfad | Inhalt |
|---|---|
/etc/pve | Cluster-Config, Storage-Definitionen, User, Firewall |
/etc/network/interfaces | Netzwerk-Konfiguration |
/etc/hosts | Hostname-Auflösung |
/etc/hostname | Hostname |
/etc/resolv.conf | DNS |
/etc/fstab | Filesystem-Mounts |
/etc/cron.* | Cron-Jobs |
/etc/ssh | SSH-Konfiguration |
/root | Skripte und Dateien des Root-Users |
Das Backup-Skript
Identisch auf beiden Hosts (scpve und pveforum), bis auf den Pfad:
#!/bin/bash # PVE Host Configuration Backup # Behaelt nur die letzten 3 Backups HOST=$(hostname) DATE=$(date +%Y-%m-%d_%H-%M) # Pfad anpassen: synology-minipc fuer scpve, synology-pveforum fuer pveforum BACKUP_DIR="/mnt/pve/synology-minipc/host-config" BACKUP_FILE="${BACKUP_DIR}/pve-host-${HOST}-${DATE}.tar.gz" KEEP=3 if ! mountpoint -q /mnt/pve/synology-minipc; then echo "FEHLER: Synology-Mount nicht verfuegbar!" exit 1 fi tar czf "$BACKUP_FILE" \ /etc/pve \ /etc/network/interfaces \ /etc/hosts \ /etc/hostname \ /etc/resolv.conf \ /etc/fstab \ /etc/cron.d \ /etc/cron.daily \ /etc/cron.weekly \ /etc/cron.monthly \ /etc/ssh \ /root \ 2>/dev/null # Alte Backups loeschen - nur die letzten 3 behalten ls -1t "$BACKUP_DIR"/pve-host-${HOST}-*.tar.gz 2>/dev/null \ | tail -n +$((KEEP + 1)) | xargs -r rm -f echo "Backup abgeschlossen: $BACKUP_FILE"
Installation auf jedem Host
-
Skript anlegen
nano /usr/local/bin/pve-host-backup.sh chmod +x /usr/local/bin/pve-host-backup.sh
-
host-config-Ordner anlegen
# Auf scpve: mkdir /mnt/pve/synology-minipc/host-config # Auf pveforum: mkdir /mnt/pve/synology-pveforum/host-config
-
Test manuell
/usr/local/bin/pve-host-backup.sh
-
Cron-Job einrichten
crontab -e
Diese Zeile hinzufügen (Sonntag 04:00 Uhr):
0 4 * * 0 /usr/local/bin/pve-host-backup.sh >> /var/log/pve-host-backup.log 2>&1
pCloud-Off-Site
Synology Cloud Sync unterstützt pCloud nicht nativ. Wir nutzen rclone direkt auf der Synology — das ist robuster, schneller und unterstützt pCloud nativ über die rclone-API.
rclone installieren
-
SSH auf Synology
ssh steffen@192.168.178.3 sudo -i
-
rclone herunterladen und installieren
cd /tmp curl -O https://downloads.rclone.org/rclone-current-linux-amd64.zip 7z x rclone-current-linux-amd64.zip cd rclone-*-linux-amd64 cp rclone /usr/local/bin/ chmod +x /usr/local/bin/rclone rclone version
-
rclone für pCloud konfigurieren
rclone config
Im Assistenten:
n(New remote)- Name:
pcloud - Storage:
pcloud - client_id und client_secret: leer lassen
- Edit advanced config:
y - Bei "hostname":
2für EU region - Use web browser to authenticate:
n - Den ausgegebenen
rclone authorize "pcloud"Befehl auf dem Mac ausführen - Token kopieren und einfügen
-
Authentifizierung vom Mac aus
Auf dem MacBook:
brew install rclone rm -rf ~/.cache/rclone rclone authorize pcloud
Browser öffnet sich, pCloud-Login durchführen, Allow klicken. Der JSON-Token im Mac-Terminal kopieren und im Synology-Assistenten als
config_tokeneinfügen. -
Verbindung testen
rclone about pcloud: rclone lsd pcloud:
Sollte den Speicherplatz und die Ordner anzeigen.
Email-Versand mit ssmtp einrichten
-
GMX POP3/IMAP aktivieren
Auf gmx.de einloggen → Einstellungen → POP3/IMAP-Abruf → POP3 und IMAP Zugriff erlauben
-
ssmtp konfigurieren
nano /etc/ssmtp/ssmtp.conf
mailhub=mail.gmx.net:587 UseSTARTTLS=YES UseTLS=YES AuthUser=scatta@gmx.de AuthPass=DEIN_GMX_PASSWORT rewriteDomain=gmx.de FromLineOverride=YES hostname=DSSEC root=scatta@gmx.de
chmod 640 /etc/ssmtp/ssmtp.conf
-
Test-Mail senden
echo -e "From: scatta@gmx.de\nTo: scatta@gmx.de\nSubject: Test\n\nHallo" | ssmtp scatta@gmx.de
Das Sync-Skript
Das zentrale Herzstück: ein Bash-Skript, das alle Backups in die pCloud synchronisiert, Retention durchsetzt, einen Pre-Check macht und per Email berichtet.
Pfad und Aufruf
Skript: /volume1/scripts/sync-to-pcloud.sh Log: /volume1/scripts/pcloud-sync.log Aufruf: bash /volume1/scripts/sync-to-pcloud.sh
Vollständiger Quellcode
#!/bin/bash ############################################################################### # pCloud Backup Sync - Synology # Synchronisiert Backups zu pCloud: # - Proxmox MiniPC (mit Retention max. 3 Tagessets) # - Proxmox pveforum (mit Retention max. 3 Tagessets) # - Lexware Sicherung (Spiegel-Sync, keine Retention) ############################################################################### # ============== KONFIGURATION ============== RCLONE="/usr/local/bin/rclone" LOG_FILE="/volume1/scripts/pcloud-sync.log" EMAIL_TO="scatta@gmx.de" KEEP_DAYS=3 MAX_BACKUP_AGE_HOURS=26 declare -A SYNCS=( ["/volume1/Backups-Proxmox-Mini-IP-8"]="pcloud:Backups-Proxmox-Mini-IP-8" ["/volume1/Backups-Proxmox-pveforum-IP-192"]="pcloud:Backups-Proxmox-pveforum-IP-192" ["/volume1/_SICHERUNGEN/Lexware Sicherung"]="pcloud:Lexware-Sicherung" ) EXCLUDE_FROM_CHECKS="Lexware" # ============== INITIALISIERUNG ============== START_TIME=$(date +%s) START_DATE=$(date '+%Y-%m-%d %H:%M:%S') WARNINGS=() ERRORS=() STATS="" echo "" >> "$LOG_FILE" echo "===============================================" >> "$LOG_FILE" echo "=== Sync gestartet: $START_DATE ===" >> "$LOG_FILE" echo "===============================================" >> "$LOG_FILE" # ============== PRE-CHECK ============== echo "--- Pre-Check: Backup-Aktualitaet ---" >> "$LOG_FILE" for src in "${!SYNCS[@]}"; do if [[ "$src" == *"$EXCLUDE_FROM_CHECKS"* ]]; then echo "Skip Pre-Check fuer: $src" >> "$LOG_FILE" continue fi if [ ! -d "$src" ]; then ERRORS+=("Quellverzeichnis fehlt: $src") continue fi DUMP_DIR="$src/dump" if [ -d "$DUMP_DIR" ]; then NEWEST=$(find "$DUMP_DIR" -name "vzdump-*.zst" -type f -printf '%T@\n' 2>/dev/null | sort -n | tail -1) if [ -n "$NEWEST" ]; then NOW=$(date +%s) AGE_HOURS=$(( (NOW - ${NEWEST%.*}) / 3600 )) if [ "$AGE_HOURS" -gt "$MAX_BACKUP_AGE_HOURS" ]; then WARNINGS+=("$src: Neuestes Backup ist $AGE_HOURS Stunden alt!") fi fi fi done # ============== SYNC ============== echo "--- Sync zu pCloud ---" >> "$LOG_FILE" for src in "${!SYNCS[@]}"; do dest="${SYNCS[$src]}" NAME=$(basename "$src") SYNC_START=$(date +%s) "$RCLONE" copy "$src" "$dest" \ --transfers=2 \ --bwlimit=10M \ --log-file="$LOG_FILE" \ --log-level INFO \ --stats=5m \ --stats-one-line RC=$? SYNC_END=$(date +%s) SYNC_DURATION=$((SYNC_END - SYNC_START)) SYNC_MIN=$((SYNC_DURATION / 60)) SYNC_SEC=$((SYNC_DURATION % 60)) if [ $RC -ne 0 ]; then ERRORS+=("Sync FEHLER fuer $NAME (Exit-Code: $RC)") STATS+="FEHLER - $NAME (Code $RC)\n" else STATS+="OK - $NAME (${SYNC_MIN}m ${SYNC_SEC}s)\n" fi done # ============== RETENTION ============== for src in "${!SYNCS[@]}"; do if [[ "$src" == *"$EXCLUDE_FROM_CHECKS"* ]]; then continue fi dest="${SYNCS[$src]}" DATES=$("$RCLONE" lsf "$dest/dump" --include "vzdump-*.zst" 2>/dev/null | \ grep -oP '\d{4}_\d{2}_\d{2}' | sort -u | sort -r) if [ -z "$DATES" ]; then continue; fi DATE_COUNT=$(echo "$DATES" | wc -l) if [ "$DATE_COUNT" -le "$KEEP_DAYS" ]; then continue; fi TO_DELETE=$(echo "$DATES" | tail -n +$((KEEP_DAYS + 1))) for date_str in $TO_DELETE; do "$RCLONE" delete "$dest/dump" --include "vzdump-*${date_str}*" \ --log-file="$LOG_FILE" --log-level INFO 2>>"$LOG_FILE" done done # ============== EMAIL ============== END_TIME=$(date +%s) DURATION=$((END_TIME - START_TIME)) DURATION_MIN=$((DURATION / 60)) DURATION_SEC=$((DURATION % 60)) PCLOUD_INFO=$("$RCLONE" about pcloud: 2>/dev/null | head -3) if [ ${#ERRORS[@]} -gt 0 ]; then SUBJECT="[FEHLER] pCloud-Sync ($(hostname))" STATUS="FEHLER" elif [ ${#WARNINGS[@]} -gt 0 ]; then SUBJECT="[WARNUNG] pCloud-Sync ($(hostname))" STATUS="WARNUNG" else SUBJECT="[OK] pCloud-Sync ($(hostname))" STATUS="ERFOLGREICH" fi BODY="pCloud Backup Sync Bericht ============================= Status: $STATUS Start: $START_DATE Dauer: ${DURATION_MIN}m ${DURATION_SEC}s --- Sync-Ergebnisse --- $(echo -e "$STATS") --- pCloud Speicher --- $PCLOUD_INFO " { echo "From: $EMAIL_TO" echo "To: $EMAIL_TO" echo "Subject: $SUBJECT" echo "Content-Type: text/plain; charset=UTF-8" echo "" echo "$BODY" } | ssmtp "$EMAIL_TO" 2>>"$LOG_FILE" exit ${#ERRORS[@]}
Automatisierung via Aufgabenplaner
Synology DSM → Systemsteuerung → Aufgabenplaner → Erstellen → Geplante Aufgabe → Benutzerdefiniertes Skript
Aufgabe: pCloud Sync Backups Benutzer: root Aktiviert: ✓ Zeitplan: Täglich, 06:00 Uhr Befehl: bash /volume1/scripts/sync-to-pcloud.sh
Betreff: [OK] pCloud-Sync (DSSEC) pCloud Backup Sync Bericht ============================= Status: ERFOLGREICH Start: 2026-05-26 06:00:00 Dauer: 8m 32s --- Sync-Ergebnisse --- OK - Backups-Proxmox-Mini-IP-8 (3m 12s) OK - Backups-Proxmox-pveforum-IP-192 (2m 04s) OK - Lexware Sicherung (3m 16s) --- pCloud Speicher --- Total: 1 TiB Used: 260 GiB Free: 764 GiB
Restore-Szenarien
Ein Backup ist nur so gut wie sein Restore. Diese Anleitungen führen dich durch die wichtigsten Wiederherstellungs-Szenarien.
Szenario A — Einzelne VM/CT wiederherstellen
-
In PVE-GUI navigieren
Server-Ansicht → Storage anklicken (z. B.
backup-lokal-sataodersynology-minipc) → Reiter Backups -
Backup auswählen
Liste der vzdump-Dateien wird angezeigt. Datum auswählen und auf Wiederherstellen klicken.
-
Restore konfigurieren
Storage: ZFS-POOL1 (oder anderes Ziel) VMID: Original-ID oder neue ID Eindeutig: ✓ (verhindert Überschreiben bestehender VM)
-
Restore starten und prüfen
Nach Abschluss VM/CT in der Liste prüfen, ggf. Netzwerk-Einstellungen anpassen, dann starten.
Szenario B — Aus pCloud restoren (Synology kaputt)
-
rclone auf einem Linux-Rechner installieren
curl https://rclone.org/install.sh | sudo bash rclone config # pcloud-Konfiguration anlegen (siehe Kapitel 06) -
Backup aus pCloud herunterladen
# Komplettes Verzeichnis rclone copy pcloud:Backups-Proxmox-Mini-IP-8 /tmp/backup-restore # Oder nur ein einzelnes Backup rclone copy pcloud:Backups-Proxmox-Mini-IP-8/dump/vzdump-lxc-100-2026_05_25-02_00_00.tar.zst /tmp/
-
Backup nach Proxmox kopieren
scp /tmp/vzdump-lxc-100-*.tar.zst root@192.168.178.8:/var/lib/vz/dump/
-
In PVE wiederherstellen
Storage
local→ Backups → Datei auswählen → Wiederherstellen
Szenario C — Kompletter Proxmox-Host wiederherstellen
Dieses Szenario tritt ein, wenn z. B. die System-SSD eines Proxmox-Hosts defekt ist und du den Server neu aufsetzen musst.
-
Proxmox VE frisch installieren
Aktuelle ISO von proxmox.com herunterladen, USB-Stick erstellen, neu installieren. Den gleichen Hostnamen verwenden (
scpveoderpveforum). -
Netzwerk konfigurieren
Gleiche IP wie vorher (
192.168.178.8bzw.192.168.178.192) und Bridge einrichten. -
Host-Config wiederherstellen
# SMB-Storage temporär mounten mount -t cifs //192.168.178.3/Backups-Proxmox-Mini-IP-8 /mnt/restore \ -o username=steffen,password=DEIN_PW,vers=3.0 # Neueste host-config finden und entpacken ls -lt /mnt/restore/host-config/ tar xzf /mnt/restore/host-config/pve-host-scpve-XXXX.tar.gz -C / # Reboot reboot
Nach dem Reboot sind Storage-Configs, Cluster-Config, Firewall-Regeln, User wieder da.
-
ZFS-Pools importieren
zpool import # zeigt verfügbare Pools zpool import ZFS-POOL1 zpool import ZFS-POOL3 zpool import ZFS-POOL3-SATA -
VMs/CTs aus Backups wiederherstellen
Alle Backups via PVE-GUI restoren — Reihenfolge: erst Container, dann VMs. Siehe Szenario A.
Szenario D — Lexware-Datei von 2019 wiederherstellen
Da die Lexware-Daten als Spiegel ohne Retention in pCloud liegen, ist jede jemals gesicherte Datei verfügbar.
# Liste anzeigen, nach Jahr filtern rclone ls pcloud:Lexware-Sicherung/ | grep "190" | head -20 # Bestimmte Datei holen rclone copy pcloud:Lexware-Sicherung/LFO2303_190324_165130.zip /tmp/
Trouble-shooting
Häufige Probleme und ihre Lösungen — basierend auf den Fallstricken, die wir beim Aufbau überwunden haben.
Problem: Email kommt nicht an
# Direkter Test
echo -e "From: scatta@gmx.de\nTo: scatta@gmx.de\nSubject: Test\n\nHallo" \
| ssmtp -v scatta@gmx.de
Wenn 550-Fehler: GMX POP3/IMAP-Zugriff prüfen (siehe Kapitel 06). Wenn Authentifizierung scheitert: Passwort in /etc/ssmtp/ssmtp.conf prüfen.
Problem: rclone "Invalid access_token"
Meist falsches Datacenter (US vs. EU). Lösung:
rclone config
# e = Edit pcloud
# Bei Advanced: y
# hostname = 2 (EU)
# Bei "refresh token": y
# Auf Mac: rclone authorize pcloud
Problem: SMB-Mount funktioniert nicht
# Manuell mounten und Fehler lesen mount -t cifs //192.168.178.3/Backups-Proxmox-Mini-IP-8 /mnt/test \ -o username=steffen,vers=3.0 # Prüfen ob Synology SMB-Dienst aktiv # DSM: Systemsteuerung → Dateidienste → SMB
Problem: Backup zu groß / Speicher voll
- Container auf "interne Backups" prüfen:
pct enter VMID+du -sh / - Wenn in
/root/oder ähnlich Ordner mit Backups: aufräumen + Cron-Job dort prüfen - Lexware-Updater-Backups:
/home/data/updater-*/backups/löschen wenn unnötig
Problem: Retention löscht zu viele Backups in pCloud
Vorsicht: Wenn die Pre-Check-Logik die Datumsformate falsch parsed, werden möglicherweise viele Backups als getrennt erkannt. Im Skript prüfen:
grep "grep -oP" /volume1/scripts/sync-to-pcloud.sh
# Muss sein: '\d{4}_\d{2}_\d{2}' (nur Datum)
# NICHT: '\d{4}_\d{2}_\d{2}-\d{2}_\d{2}_\d{2}' (Datum+Zeit)
Problem: Aufgabenplaner läuft nicht
# Manuell testen bash /volume1/scripts/sync-to-pcloud.sh # Logfile prüfen tail -50 /volume1/scripts/pcloud-sync.log # Skript ausführbar? ls -la /volume1/scripts/sync-to-pcloud.sh
Checkliste & Wartung
Was du regelmäßig prüfen solltest, damit das System auch in einem Jahr noch zuverlässig läuft.
Täglich (automatisch via Email)
- Auto Email vom pCloud-Sync prüfen — Status "ERFOLGREICH"?
- Auto Wenn keine Email kommt: nachschauen warum!
Wöchentlich (manuell, 5 Minuten)
- Manuell Proxmox: Storage-Belegung prüfen (Server-Ansicht → Storage)
- Manuell Synology: Speicherplatz prüfen
- Manuell pCloud: Speicher unter 80% halten
Monatlich (Test-Restore)
- Manuell Eine VM aus dem lokalen Backup wiederherstellen (in neue VMID, dann löschen)
- Manuell Eine Lexware-ZIP aus pCloud herunterladen und entpacken
- Manuell Host-Config-tar.gz entpacken und prüfen (in temporärem Verzeichnis)
Halbjährlich
- Wichtig rclone updaten: neuere Version installieren (
curl https://rclone.org/install.sh | sudo bash) - Wichtig Disaster-Recovery-Plan durchspielen (Szenario C theoretisch durchgehen)
- Wichtig GMX-Passwort prüfen (falls Änderungen vorgenommen wurden)
Wichtige Befehle – Spickzettel
| Befehl | Zweck |
|---|---|
cat /etc/pve/jobs.cfg | Backup-Jobs auflisten (PVE) |
ls -lh /ZFS-POOL3-SATA/backups/dump/ | Lokale Backups auf scpve |
zfs list | ZFS-Belegung anzeigen |
rclone about pcloud: | pCloud-Belegung |
rclone lsd pcloud: | pCloud-Ordner auflisten |
tail -50 /volume1/scripts/pcloud-sync.log | Sync-Log einsehen |
bash /volume1/scripts/sync-to-pcloud.sh | Manueller Sync-Lauf |
pct enter 102 | In Container 102 einsteigen |
df -h | Plattenbelegung |
Notfall-Kontaktinformationen
Synology DSSEC: 192.168.178.3 (Synology-Admin steffen) PVE scpve: 192.168.178.8 (Proxmox root) PVE pveforum: 192.168.178.192 (Proxmox root) pCloud: my.pcloud.com (Apple-Login) GMX: scatta@gmx.de (Benachrichtigungen) Skripte: /volume1/scripts/sync-to-pcloud.sh /usr/local/bin/pve-host-backup.sh (auf beiden Hosts) Logs: /volume1/scripts/pcloud-sync.log /var/log/pve-host-backup.log (auf beiden Hosts) Konfiguration: /etc/ssmtp/ssmtp.conf (Synology) /root/.config/rclone/rclone.conf (Synology)
Drucke diese Dokumentation aus oder speichere sie offline (z. B. auch in pCloud). Im Notfall, wenn das System nicht erreichbar ist, ist eine offline-Version der Dokumentation Gold wert.