70 lines
2.7 KiB
Markdown
Executable File
70 lines
2.7 KiB
Markdown
Executable File
# 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
|
|
|
|
# NTFY Icon (Optional / Leer lassen falls nicht benötigt)
|
|
ICON=http://192.168.178.25:3030/icons/n100.png
|
|
|
|
# Zustände, die Benachrichtigungen auslösen
|
|
# (Success, Warning, Error, Fatal, Unknown)
|
|
SEND_NOTIFICATIONS="Error Fatal Unknown"
|
|
|
|
# Wählen Sie das Logging level. Möglich Werte: off, normal, debug
|
|
# Die Logdatei wird im gleichen Verzeichnis wie das Script selbst gespeichert.
|
|
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.
|