Dieses Bash-Script erstellt hostbasierte Datei-Backups (pxar) zu einem Proxmox Backup Server (PBS) und benachrichtigt dich bei Erfolg oder Fehler optional per E-Mail sowie via Ntfy. Es ist für den automatisierten Betrieb (z. B. Cron) ausgelegt und nutzt eine ausgelagerte Konfigurationsdatei.
- Benachrichtigungen: E-Mail (z. B. via msmtp/mailx) und Ntfy (mit optionalem Bearer-Token)
- Konsolen- und Datei-Logging mit Timestamps
- Locking via `flock`, saubere Exit-Codes, robustes Fehlerhandling, `--dry-run`
- Healthcheck-OK-Datei für externes Monitoring (z. B. PRTG)
- TLS-Fingerprint nur bei selbstsigniertem PBS-Zertifikat notwendig (optional)
## Konfiguration
Alle Einstellungen liegen **ausschließlich** in der Konfigurationsdatei. Standard: `pbs-backup.v2.conf` im selben Verzeichnis wie das Script; alternativ den Pfad per Umgebungsvariable im Script setzen:
`CONFIG_FILE=/pfad/zur/pbs-backup.v2.conf`.
**PBS-Variablen:**
-`PBS_REPOSITORY` (Pflicht): Repository-String im Format
ohne Port, wenn PBS unter dem Standard-Port erreichbar ist:
Hinweis: Wenn der PBS aus dem Internet über einen anderen Port als den `8007` erreichbar ist, **muss** der Port angegeben werden.
-`PBS_FINGERPRINT` (optional): Nur erforderlich bei selbstsigniertem Zertifikat; sonst **leer lassen**.
-`PBS_API` (Pflicht für Auth): API-Key für die Authentifizierung. Das Script setzt ihn intern nur im Subshell als `PBS_PASSWORD`, damit er nicht ins globale Environment oder in Logs gelangt.
**Weitere Optionen (Auszug):**
-`INCLUDE_DIRS`: Array der zu sichernden Verzeichnisse.
-`LOGFILE`, `LOCKFILE`: Pfade für Log- und Lock-Datei.
- Standardlauf mit Konfiguration im Script-Verzeichnis:
`./pbs-backup.v2.sh`
- Anderer Config-Pfad:
`CONFIG_FILE=/etc/pbs-backup.v2.conf`
- Testlauf ohne Upload:
`./pbs-backup.v2.sh --dry-run`
- Ruhige Ausgabe und ohne Ntfy:
`./pbs-backup.v2.sh -q --no-ntfy`
## Cronjob
Das Script besitzt eigenes Locking (`flock`) und ist damit für periodische Ausführung per Cron geeignet. Für Backups von Pfaden wie `/root` oder `/var/lib/docker/volumes/` sollte der Cronjob als **root** laufen.
- Verwende **absolute Pfade** zum Script und zur Config.
- Die Script-Ausgabe landet zusätzlich im in der Config definierten `LOGFILE`. Der Cron-Redirect (`>> /var/log/pbs-backup.cron.log 2>&1`) ist optional als zusätzlicher Laufverlauf.
Auf Ubuntu 22.04 (und ggf. 24.04) kann `libzstd1 (>= 1.5.2)` benötigt werden, während ggf. nur `1.4.8+dfsg-3build1` vorhanden ist. Installiere daher eine passende Version:
Wie man Berechtigungen setzt und einen API-Key im PBS erzeugt, ist in der offiziellen PBS-Dokumentation beschrieben:
https://pbs.proxmox.com/docs/user-management.html
---
## 💬 Support & Community
Du hast Fragen, brauchst Unterstützung bei der Einrichtung oder möchtest dich einfach mit anderen austauschen, die ähnliche Projekte betreiben? Dann schau gerne in unserer Techniverse Community vorbei:
# - Konfiguration ausgelagertin eigene Konfigurationsdatei
# - Backup-OK-Datei für externes Monitoring implementiert
set -Eeuo pipefail
umask077
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.