Skip to main content

Backup Proxmox

pve-config-backup.sh

Sichert die gesamte Konfiguration eines Proxmox-Hosts in ein komprimiertes Archiv (~10MB).
Kein vollständiges Disk-Image — nur die relevanten Konfigurationsdateien.


Inhalt des Backups

Pfad Was wird gesichert
/etc/pve Alle VM/CT-Konfigurationen, Storage, Benutzer, Cluster, Netzwerk
/etc/network/interfaces Bridge- und Netzwerkkonfiguration
/etc/network/interfaces.d Zusätzliche Netzwerk-Includes
/etc/hosts Hostname-Auflösung
/etc/hostname Hostname des Systems
/etc/fstab Einhängepunkte (z.B. NFS, lokale Disks)
/etc/resolv.conf DNS-Konfiguration
/etc/default/grub GRUB-Parameter inkl. IOMMU (intel_iommu=on)
/etc/default/grub.d Zusätzliche GRUB-Konfiguration
/etc/modprobe.d Kernel-Modul-Konfiguration (VFIO, Passthrough)
/etc/modules Autostart-Kernel-Module
/etc/udev/rules.d Udev-Regeln (USB-Persistenz, Disk-Mapping)
/etc/systemd/system Eigene Systemd-Dienste und Timer
/etc/cron.d System-Cronjobs
/etc/cron.daily Tägliche Cronjobs
/etc/cron.weekly Wöchentliche Cronjobs
/etc/cron.monthly Monatliche Cronjobs
/var/spool/cron/crontabs/root Root-Crontab
/root SSH-Keys, eigene Skripte, .bashrc, .profile

Was ebenfalls abgedeckt ist

  • USB-Passthrough: Konfiguration liegt in /etc/pve/qemu-server/<vmid>.conf
  • Disk-Passthrough: Ebenfalls in den VM-Configs unter /etc/pve/qemu-server/
  • IOMMU/VFIO: /etc/default/grub + /etc/modprobe.d/
  • Udev-Persistenz-Regeln für USB-Geräte: /etc/udev/rules.d/

Installation

# Skript auf Proxmox kopieren
scp pve-config-backup.sh root@<proxmox-ip>:/root/
chmod +x /root/pve-config-backup.sh

Manueller Aufruf

# Standard (Ziel: /mnt/pve/ds-woehr-neu/panzerbackup)
/root/pve-config-backup.sh

# Abweichendes Zielverzeichnis
BACKUP_DIR=/mnt/anderes/ziel /root/pve-config-backup.sh

# Mehr Backups behalten (Standard: 7)
KEEP=14 /root/pve-config-backup.sh

Automatischer Betrieb (Systemd Timer)

Service und Timer installieren

# Dateien kopieren
scp pve-config-backup.service root@<proxmox-ip>:/etc/systemd/system/
scp pve-config-backup.timer root@<proxmox-ip>:/etc/systemd/system/

# Aktivieren
systemctl daemon-reload
systemctl enable --now pve-config-backup.timer

Läuft täglich um 03:00 Uhr mit bis zu 10 Minuten Zufallsversatz.

Status prüfen

# Nächster geplanter Lauf
systemctl list-timers pve-config-backup.timer

# Letzter Lauf und Ergebnis
systemctl status pve-config-backup.service

# Logs der letzten Läufe
journalctl -u pve-config-backup.service -n 50

Timer deaktivieren

systemctl disable --now pve-config-backup.timer

Backup-Dateien

Backups werden im Zielverzeichnis mit folgendem Namensschema gespeichert:

pve-config_<hostname>_<datum>_<uhrzeit>.tar.gz

Beispiel:

/mnt/pve/ds-woehr-neu/panzerbackup/
├── pve-config_proxmox_2026-03-07_03-00-12.tar.gz
├── pve-config_proxmox_2026-03-06_03-00-08.tar.gz
└── pve-config_proxmox_2026-03-05_03-00-15.tar.gz

Es werden standardmäßig die letzten 7 Backups behalten, ältere werden automatisch gelöscht.

Neuestes Backup anzeigen:

ls -lt /mnt/pve/ds-woehr-neu/panzerbackup/pve-config_*.tar.gz | head -1

Wiederherstellen

Vorbereitung

Backup-Datei identifizieren:

ls -lt /mnt/pve/ds-woehr-neu/panzerbackup/pve-config_*.tar.gz

Inhalt des Archivs prüfen (ohne etwas zu ändern):

tar tzf /mnt/pve/ds-woehr-neu/panzerbackup/pve-config_proxmox_DATUM.tar.gz | less

Komplette Wiederherstellung nach Neuinstallation

  1. Proxmox frisch installieren (gleicher Hostname empfohlen)

  2. Synology einbinden:

    mkdir -p /mnt/pve/ds-woehr-neu
    mount -t cifs //172.16.1.4/pxxData /mnt/pve/ds-woehr-neu -o username=<user>,password=<pass>
    
  3. Backup einspielen:

    tar xzf /mnt/pve/ds-woehr-neu/panzerbackup/pve-config_proxmox_DATUM.tar.gz -C /
    
  4. GRUB aktualisieren (wichtig wenn IOMMU-Einstellungen vorhanden):

    update-grub
    
  5. Kernel-Module neu laden:

    update-initramfs -u
    
  6. Neustart:

    reboot
    

Nach dem Neustart sind alle VM/CT-Konfigurationen, Netzwerkeinstellungen, Passthrough-Konfigurationen und eigene Dienste wiederhergestellt.

Einzelne Dateien wiederherstellen

Nur Netzwerkkonfiguration:

tar xzf pve-config_proxmox_DATUM.tar.gz -C / etc/network/interfaces

Nur VM-Konfiguration (z.B. VM 100):

tar xzf pve-config_proxmox_DATUM.tar.gz -C / etc/pve/qemu-server/100.conf

Nur GRUB-Konfiguration:

tar xzf pve-config_proxmox_DATUM.tar.gz -C / etc/default/grub
update-grub

Konfiguration per Umgebungsvariable

Variable Standard Beschreibung
BACKUP_DIR /mnt/pve/ds-woehr-neu/panzerbackup Zielverzeichnis
KEEP 7 Anzahl der aufzubewahrenden Backups

Anforderungen

  • Bash
  • tar, gzip (auf jedem Debian/Proxmox vorinstalliert)
  • Schreibzugriff auf BACKUP_DIR
  • Root-Rechte (wegen /etc/pve und /root)