Initial commit
This commit is contained in:
91
shell_ntfy_duplicati.sh
Normal file
91
shell_ntfy_duplicati.sh
Normal file
@@ -0,0 +1,91 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Pfad zur .env-Datei dynamisch ermitteln
|
||||
ENV_FILE="$(dirname "$(realpath "$0")")/$(basename "$0" .sh).env"
|
||||
|
||||
# Prüfen, ob die .env-Datei existiert
|
||||
if [[ ! -f "$ENV_FILE" ]]; then
|
||||
echo "Fehler: Konfigurationsdatei $ENV_FILE nicht gefunden."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# .env-Datei laden
|
||||
source "$ENV_FILE"
|
||||
|
||||
LOG_FILE="$(dirname "$(realpath "$0")")/$(basename "$0" .sh).log" # Logdatei im gleichen Verzeichnis wie das Script
|
||||
|
||||
# Funktion zum Überprüfen, ob ein Zustand in der Benachrichtigungsliste enthalten ist
|
||||
should_notify() {
|
||||
local state=$1
|
||||
for notify_state in "${SEND_NOTIFICATIONS[@]}"; do
|
||||
if [[ "$state" == "$notify_state" ]]; then
|
||||
return 0
|
||||
fi
|
||||
done
|
||||
return 1
|
||||
}
|
||||
|
||||
# Funktion zum Loggen
|
||||
log_message() {
|
||||
if [[ "$LOGGING" == true ]]; then
|
||||
timestamp=$(date +"%Y-%m-%d %H:%M:%S")
|
||||
echo "$timestamp - $1" >> "$LOG_FILE"
|
||||
fi
|
||||
}
|
||||
|
||||
# Zeitstempel in die Logdatei schreiben
|
||||
log_message "Script aufgerufen. DUPLICATI__PARSED_RESULT: $DUPLICATI__PARSED_RESULT"
|
||||
|
||||
# Überprüfen, ob Benachrichtigung gesendet werden soll
|
||||
if should_notify "$DUPLICATI__PARSED_RESULT"; then
|
||||
case "$DUPLICATI__PARSED_RESULT" in
|
||||
"Success")
|
||||
PRIORITY="default"
|
||||
TAGS="heavy_check_mark"
|
||||
TITLE="Backup abgeschlossen"
|
||||
MESSAGE="Das Backup wurde erfolgreich abgeschlossen"
|
||||
;;
|
||||
"Warning")
|
||||
PRIORITY="medium"
|
||||
TAGS="warning"
|
||||
TITLE="Backup abgeschlossen mit Warnungen"
|
||||
MESSAGE="Das Backup wurde abgeschlossen, aber es gab Warnungen"
|
||||
;;
|
||||
"Error")
|
||||
PRIORITY="high"
|
||||
TAGS="x"
|
||||
TITLE="Backup fehlgeschlagen"
|
||||
MESSAGE="Es gab ein Problem beim Erstellen des Backups"
|
||||
;;
|
||||
"Fatal")
|
||||
PRIORITY="urgent"
|
||||
TAGS="skull"
|
||||
TITLE="Schwerwiegender Fehler beim Backup"
|
||||
MESSAGE="Das Backup konnte aufgrund eines schwerwiegenden Fehlers nicht abgeschlossen werden"
|
||||
;;
|
||||
*)
|
||||
PRIORITY="low"
|
||||
TAGS="question"
|
||||
TITLE="Unbekannter Zustand"
|
||||
MESSAGE="Der Zustand des Backups ist unbekannt"
|
||||
;;
|
||||
esac
|
||||
|
||||
# curl Befehl vorbereiten
|
||||
CURL_CMD="curl -s -X POST \"$NTFY_URL\" \
|
||||
-H \"Authorization: Bearer $AUTH_TOKEN\" \
|
||||
-H \"Priority: $PRIORITY\" \
|
||||
-H \"Tags: $TAGS\" \
|
||||
-H \"Icon: $ICON\" \
|
||||
-H \"Content-Type: application/json\" \
|
||||
-d '{\"topic\": \"Duplicati\", \"title\": \"$TITLE\", \"message\": \"$MESSAGE\\n\\nServer: $SERVER_NAME\\nJobname: $DUPLICATI__backup_name\\nStatus: $DUPLICATI__PARSED_RESULT\", \"click\": \"\", \"actions\": [{ \"action\": \"view\", \"label\": \"Duplicati öffnen\", \"url\": \"$DUPLICATI_URL\" }]}'
|
||||
"
|
||||
|
||||
# Log den curl-Befehl
|
||||
log_message "curl Befehl: $CURL_CMD"
|
||||
|
||||
# Benachrichtigung senden
|
||||
/bin/bash -c "$CURL_CMD"
|
||||
fi
|
||||
|
||||
exit 0
|
||||
Reference in New Issue
Block a user