Files
homelab-infra/services/posture-check/unraid-user-scripts.md
T

2.8 KiB

Unraid User Scripts fuer Posture-Checks

Host-Repo-Pfad:

/mnt/user/services/homelab-infra

posture-check-at-start

Zeit: Array Start.

#!/bin/bash
bash /mnt/user/services/homelab-infra/services/posture-check/posture-check.sh

posture-check-hourly

Zeit: stuendlich bei Minute 17, Cron 17 * * * *.

#!/bin/bash
bash /mnt/user/services/homelab-infra/services/posture-check/posture-check.sh

cert-token-check-daily

Zeit: taeglich 06:10, Cron 10 6 * * *.

#!/bin/bash
bash /mnt/user/services/homelab-infra/services/posture-check/cert-token-check.sh

compose-runtime-drift-daily

Zeit: taeglich 06:20, Cron 20 6 * * *.

#!/bin/bash
bash /mnt/user/services/homelab-infra/services/posture-check/compose-runtime-drift.sh

prometheus-textfile-export-15min

Zeit: alle 15 Minuten, Cron */15 * * * *.

Zweck:

  • Borg-Backup-Frische fuer Prometheus sichtbar machen
  • kritische Container als explizite 0/1-Metrik exportieren
  • Grundlage fuer HomelabBorgBackupStale, HomelabBorgLastJobFailed und HomelabCriticalContainerDown
#!/bin/bash
bash /mnt/user/services/homelab-infra/services/posture-check/export-prometheus-textfile.sh

Ziel-Datei:

/mnt/user/services/posture-check/textfile/homelab.prom

homelab-operations-report-daily

Zeit: taeglich nach Borg und den Morgenchecks, z. B. 07:30, Cron 30 7 * * *.

Voraussetzung: SMTP-Passwort liegt nicht im Repo, sondern auf dem Host:

mkdir -p /mnt/user/appdata/secrets
chmod 700 /mnt/user/appdata/secrets
printf '%s' 'SMTP_PASSWORT_HIER_EINTRAGEN' > /mnt/user/appdata/secrets/homelab_smtp_password.txt
chmod 600 /mnt/user/appdata/secrets/homelab_smtp_password.txt

User Script:

#!/bin/bash
SEND_MAIL=1 \
MAIL_MODE=always \
MAIL_FROM="michideheld@gmx.de" \
MAIL_TO="Mi.Kaleschke@gmx.de" \
SMTP_HOST="smtp.gmx.net" \
SMTP_PORT="587" \
SMTP_USER="michideheld@gmx.de" \
SMTP_PASS_FILE="/mnt/user/appdata/secrets/homelab_smtp_password.txt" \
bash /mnt/user/services/homelab-infra/services/posture-check/daily-status-report.sh

docker-critical-events-at-start

Zeit: Array Start. Dieser Job startet einen Hintergrund-Watcher und beendet sich sofort. Der Supervisor schreibt PID, stdout/stderr und Event-Log nach /mnt/user/services/posture-check/.

#!/bin/bash
exec /mnt/user/services/homelab-infra/services/posture-check/docker-critical-events-supervisor.sh start

Status pruefen:

/mnt/user/services/homelab-infra/services/posture-check/docker-critical-events-supervisor.sh status

Stoppen:

/mnt/user/services/homelab-infra/services/posture-check/docker-critical-events-supervisor.sh stop

ntfy-Smoke-Test ohne Container-Stopp:

/mnt/user/services/homelab-infra/services/posture-check/docker-critical-events-supervisor.sh smoke