74 lines
2.3 KiB
Bash
Executable File
74 lines
2.3 KiB
Bash
Executable File
#!/bin/bash
|
|
# raspiBackup post extension — notifica Loogle Casa (solo WebApp).
|
|
#
|
|
# RaspiBackup chiama il post hook PRIMA di STARTSERVICES: su Pi2 Casa è giù
|
|
# (before-stop ferma loogle-casa, STOPSERVICES ferma docker). Non notificare
|
|
# subito: systemd-run stacca dal cgroup e riprova finché l'API risponde.
|
|
#
|
|
# Sourced da raspiBackup: $1 = return code backup.
|
|
# Eseguito da systemd-run: $1 = --wait-send
|
|
|
|
LOOGLE_NOTIFY="/home/daniely/docker/loogle-casa/scripts/loogle-notify.sh"
|
|
MAX_TRIES="${LOOGLE_BACKUP_NOTIFY_TRIES:-36}"
|
|
SLEEP_SECS="${LOOGLE_BACKUP_NOTIFY_SLEEP:-5}"
|
|
|
|
wait_send() {
|
|
local title="$1" body="$2" severity="$3" tag="$4"
|
|
local i
|
|
if [[ ! -x "$LOOGLE_NOTIFY" ]]; then
|
|
echo "loogle-notify.sh assente" >&2
|
|
exit 0
|
|
fi
|
|
for ((i = 1; i <= MAX_TRIES; i++)); do
|
|
if "$LOOGLE_NOTIFY" --title "$title" --body "$body" --category raspi_backup \
|
|
--severity "$severity" --tag "$tag"; then
|
|
echo "notify ok try=$i tag=$tag"
|
|
exit 0
|
|
fi
|
|
echo "notify retry $i/$MAX_TRIES tag=$tag" >&2
|
|
sleep "$SLEEP_SECS"
|
|
done
|
|
echo "notify failed after ${MAX_TRIES} tries tag=$tag" >&2
|
|
exit 1
|
|
}
|
|
|
|
if [[ "${1:-}" == "--wait-send" ]]; then
|
|
wait_send "${2:-}" "${3:-}" "${4:-info}" "${5:-raspi_backup}"
|
|
exit $?
|
|
fi
|
|
|
|
RC="${1:-1}"
|
|
HOST="${HOSTNAME:-$(hostname)}"
|
|
HOST="${HOST%%.*}"
|
|
|
|
if [[ ! -x "$LOOGLE_NOTIFY" ]]; then
|
|
return 0 2>/dev/null || exit 0
|
|
fi
|
|
|
|
if (( RC == 0 )); then
|
|
TITLE="Backup completato"
|
|
BODY="Backup di ${HOST} terminato con successo."
|
|
SEVERITY="info"
|
|
else
|
|
TITLE="Backup fallito"
|
|
BODY="Backup di ${HOST} fallito (codice ${RC})."
|
|
SEVERITY="error"
|
|
fi
|
|
|
|
TAG="raspi_backup-${HOST}"
|
|
SELF="$(readlink -f "${BASH_SOURCE[0]:-$0}" 2>/dev/null || echo /usr/local/bin/raspiBackup_loogle_post.sh)"
|
|
|
|
# Stacca dal servizio raspiBackup (KillMode=control-group) e aspetta Casa.
|
|
if command -v systemd-run >/dev/null 2>&1; then
|
|
systemd-run --quiet --collect \
|
|
--description="Loogle Casa raspiBackup notify ${HOST}" \
|
|
/bin/bash "$SELF" --wait-send "$TITLE" "$BODY" "$SEVERITY" "$TAG" \
|
|
|| true
|
|
else
|
|
nohup /bin/bash "$SELF" --wait-send "$TITLE" "$BODY" "$SEVERITY" "$TAG" \
|
|
>/dev/null 2>&1 &
|
|
disown 2>/dev/null || true
|
|
fi
|
|
|
|
return 0 2>/dev/null || exit 0
|