# 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

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

### 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

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

```

---

## Manueller Aufruf

```bash
# 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

```bash
# 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

```bash
# 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

```bash
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:

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

```

---

## Wiederherstellen

### Vorbereitung

Backup-Datei identifizieren:

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

```

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

```bash
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:**
    
    ```bash
    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:**
    
    ```bash
    tar xzf /mnt/pve/ds-woehr-neu/panzerbackup/pve-config_proxmox_DATUM.tar.gz -C /
    
    ```
4. **GRUB aktualisieren** (wichtig wenn IOMMU-Einstellungen vorhanden):
    
    ```bash
    update-grub
    
    ```
5. **Kernel-Module neu laden:**
    
    ```bash
    update-initramfs -u
    
    ```
6. **Neustart:**
    
    ```bash
    reboot
    
    ```

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

### Einzelne Dateien wiederherstellen

Nur Netzwerkkonfiguration:

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

```

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

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

```

Nur GRUB-Konfiguration:

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

```

---

## Konfiguration per Umgebungsvariable

<table id="bkmrk-variable-standard-be"><thead><tr><th>Variable</th><th>Standard</th><th>Beschreibung</th></tr></thead><tbody><tr><td>`BACKUP_DIR`</td><td>`/mnt/pve/ds-woehr-neu/panzerbackup`</td><td>Zielverzeichnis</td></tr><tr><td>`KEEP`</td><td>`7`</td><td>Anzahl der aufzubewahrenden Backups</td></tr></tbody></table>

---

## Anforderungen

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