# Backup Notification Script Dieses Bash-Skript sendet Benachrichtigungen basierend auf dem Ergebnis eines Duplicati-Backups. Die Zustände, die eine Benachrichtigung auslösen, können flexibel konfiguriert werden. ## Anforderungen - Ein ntfy-Server für das Senden von Benachrichtigungen - Zugriff auf den Duplicati-Server ## Funktionen - Benachrichtigungen werden über `ntfy` gesendet. - Zustände, die Benachrichtigungen auslösen, können in der Variable `SEND_NOTIFICATIONS` festgelegt werden. - Jeder Zustand („Success“, „Warning“, „Error“, „Fatal“) hat einen eigenen Block für spezifische Titel, Nachrichten und Prioritäten. ## Verwendung ### 1. Konfiguration 1. Platzieren Sie das Skript und eine .env-Datei im gleichen Verzeichnis. Die .env-Datei muss denselben Namen wie das Skript haben, jedoch mit der Endung `.env` (z. B. `shell_ntfy_duplicati.sh` und `shell_ntfy_duplicati.env`). ```bash # NTFY Server NTFY_URL=https://ntfy.server.net/ AUTH_TOKEN=tk_dd5geasc9844jcm3d45adio3rtchs #Duplicati Server DUPLICATI_URL=http://192.168.178.25:8200 SERVER_NAME=n100 ICON=http://192.168.178.25:3030/icons/n100.png # Zustände, die Benachrichtigungen auslösen # (Success, Warning, Error, Fatal, Unknown) SEND_NOTIFICATIONS="Fatal Unknown" # Optional kann bei jedem Ausführen des Scripts ein Logeintrag erstellt werden. # Die Logdatei wird im gleichen Verzeichnis wie das Script selbst gespeichert. # (off, normal, debug) LOGGING=off ``` 2. Setzen Sie die korrekten Dateiberechtigungen, um die Sicherheit zu gewährleisten und das Script ausführbar zu machen: ```bash chmod 700 shell_ntfy_duplicati.sh chmod 600 shell_ntfy_duplicati.env chmod +x shell_ntfy_duplicati.sh ``` ### 2. Zustände Das Skript unterstützt die folgenden Zustände: - `Success`: Das Backup war erfolgreich. - `Warning`: Das Backup wurde abgeschlossen, aber es gab Warnungen. - `Error`: Es gab ein Problem beim Backup. - `Fatal`: Das Backup ist aufgrund eines schwerwiegenden Fehlers fehlgeschlagen. - Jeder nicht erkannte Zustand wird als „Unbekannter Zustand“ behandelt. ### 3. Ausführen in Duplicati Das Skript sollte in den Einstellungen eines Backup-Jobs unter `--run-script-after` eingetragen werden, damit es nach Abschluss des Backups automatisch ausgeführt wird. ## Aufbau des Skripts Variable `SEND_NOTIFICATIONS` Enthält eine Liste von Zuständen, die eine Benachrichtigung auslösen sollen. Funktion `should_notify` Überprüft, ob der aktuelle Zustand (`DUPLICATI__PARSED_RESULT`) in der Liste `SEND_NOTIFICATIONS` enthalten ist. `case`-Block Definiert Titel, Nachrichten, Prioritäten und Tags für jeden Zustand. Abschließend wird ein `POST`-Request an den ntfy-Server gesendet.