From 83d7988c7207da45f67ba2c1d96bf06f6596cb0a Mon Sep 17 00:00:00 2001 From: Micha Date: Sun, 21 Jun 2026 19:06:55 +0200 Subject: [PATCH] nearline: S4U-Fix angewendet und verifiziert (LogonType Interactive) Task "KalliLab H Drive Nearline Pull" am 2026-06-21 von S4U auf LogonType Interactive ("Nur ausfuehren, wenn der Benutzer angemeldet ist") umgestellt. Kein gespeichertes Passwort noetig, da michi der dauerhaft angemeldete Konsolen-User ist. Per Scheduler ausgeloest, Ergebnis 0x0 verifiziert (SMB-Zugriff vorhanden, Spiegel frisch). Doku korrigiert: README beschreibt jetzt Interactive als angewendete Loesung (Password war nur die nicht genutzte Alternative). MASTER_TODO: Root-Cause behoben, nur noch optionale Healthchecks-URL offen. Co-Authored-By: Claude Opus 4.8 --- docs/MASTER_TODO.md | 2 +- ops/h-drive-nearline/README.md | 25 +++++++++++++++---------- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/docs/MASTER_TODO.md b/docs/MASTER_TODO.md index ad8993a..6a193c9 100644 --- a/docs/MASTER_TODO.md +++ b/docs/MASTER_TODO.md @@ -25,7 +25,7 @@ Host-Reports (`/mnt/user/backups/restore-reports/`) und in der Git-Historie. | Restore-Test Tailscale | Operator | State-Validierung + Reconnect nur auf Wegwerf-Host/VM, danach Geraet in Tailscale-Admin entfernen | `ops/restore-tests/tailscale-runbook.md` | | Authelia OIDC fuer Apps | Operator/Codex | Live: Grafana + Mealie login-verifiziert; Paperless Secret verdrahtet und Service-Smoke am 2026-06-17 gruen, finaler Browser-Login mit Operator-Account offen. Immich + Nextcloud bewusst geparkt bis Family-Onboarding (siehe `docs/DECISIONS.md` 2026-06-06) | `docs/AUTHELIA_OIDC_PLAN.md` | | Home Assistant Tibber | Operator/Codex | Tibber per HA-UI-Config-Flow verbinden. Danach Energy-Dashboard um echte Kosten/Preisquelle ergaenzen; SolarEdge-PV, Netz und Speicher sind bereits konfiguriert und validiert | `docs/runbooks/smart-home-bootstrap.md`, `docs/DECISIONS.md` | -| Nearline-Pull Dead-Man's-Switch + S4U-Fix | Operator | **Root-Cause 2026-06-21:** Scheduled Task `KalliLab H Drive Nearline Pull` lief als LogonType S4U (kein gespeichertes Passwort) -> keine SMB-Netz-Creds -> jeder 05:30-Lauf brach still ab; Spiegel war 19.-21.06. veraltet. Manuell nachgezogen (Stand: 21.06.-04:00-Dumps), Heartbeat-Pings + Exit-Code-Fix in `pull-critical-backups.ps1`/`pre-borg.sh` gepusht. **Verbleibt (braucht Windows-Passwort des Operators):** Task auf "Run whether logged on or not" MIT gespeichertem Passwort umstellen (LogonType Password); dann je einen Healthchecks-Check anlegen + Capability-URL hinterlegen (baerchen ENV `HEALTHCHECKS_NEARLINE_URL`/Datei; Unraid `/mnt/user/appdata/secrets/healthchecks_borg_url`) | `ops/h-drive-nearline/README.md` | +| Nearline-Pull Dead-Man's-Switch | Operator | **S4U-Root-Cause 2026-06-21 behoben + verifiziert:** Task `KalliLab H Drive Nearline Pull` von S4U auf LogonType `Interactive` ("Nur wenn Benutzer angemeldet") umgestellt (kein Passwort noetig, da `michi` Dauer-Konsolen-User) -> per Planer mit `0x0` bestaetigt. Spiegel frisch, Exit-Code-Leak gefixt, Heartbeat-Pings gepusht. **Verbleibt (optional, niedrige Dringlichkeit):** je einen Healthchecks-Check anlegen + Capability-URL hinterlegen (baerchen ENV `HEALTHCHECKS_NEARLINE_URL`/Datei; Unraid `/mnt/user/appdata/secrets/healthchecks_borg_url`) | `ops/h-drive-nearline/README.md` | | Monitoring Single-File-Bind-Mount Hardening | Operator/Claude | alertmanager/blackbox/loki/promtail + alertmanager-ntfy-bridge lokal auf Directory-Mounts umgestellt (grafana-provisioning war bereits Directory-Mount); `docker compose config` gruen. **Verbleibt:** Push + Komodo-Redeploy des monitoring-Stacks mit `--force-recreate` (Mount-Pfade aendern sich), danach Reload-/Alert-Smoke | `monitoring/docker-compose.yml` | --- diff --git a/ops/h-drive-nearline/README.md b/ops/h-drive-nearline/README.md index 585ad81..43f6edd 100644 --- a/ops/h-drive-nearline/README.md +++ b/ops/h-drive-nearline/README.md @@ -37,16 +37,21 @@ Der Windows Scheduled Task `KalliLab H Drive Nearline Pull` laeuft seit loescht nichts auf H:/; alte Artefakte werden nur nach manueller Sichtpruefung entfernt. -> **Wichtig — Task-LogonType:** Der Task muss mit "Ausfuehren, auch wenn der -> Benutzer nicht angemeldet ist" **und gespeichertem Passwort** laufen -> (LogonType `Password`). Mit `S4U` (ohne gespeichertes Passwort) hat der Lauf -> keine Netzwerk-Anmeldeinformationen und erreicht den authentifizierten -> SMB-Share `\\192.168.178.58\backups` nicht -> jeder geplante Lauf bricht -> still mit Exitcode 1 ab, ohne Report. Genau das passierte 2026-06-19 bis -> 2026-06-21 (Spiegel still veraltet), bis am 2026-06-21 manuell nachgezogen -> wurde. Manuelle Laeufe in einer interaktiven Sitzung funktionieren, weil die -> Sitzung die SMB-Creds hat. Das ist auch der Grund fuer den externen -> Dead-Man's-Switch unten. +> **Wichtig — Task-LogonType (kein S4U!):** Der Task darf **nicht** mit `S4U` +> laufen ("Unabhaengig von der Benutzeranmeldung ausfuehren" *mit* angehaktem +> "Kennwort nicht speichern"). S4U-Laeufe haben keine Netzwerk-Anmelde- +> informationen und erreichen den authentifizierten SMB-Share +> `\\192.168.178.58\backups` nicht -> jeder geplante Lauf bricht still mit +> Exitcode 1 ab, ohne Report. Genau das passierte 2026-06-19 bis 2026-06-21 +> (Spiegel still veraltet). +> +> **Behoben am 2026-06-21:** Task auf **"Nur ausfuehren, wenn der Benutzer +> angemeldet ist"** (LogonType `Interactive`) umgestellt. Das braucht **kein** +> gespeichertes Passwort und funktioniert, weil `michi` der dauerhaft +> angemeldete Konsolen-User ist (gesperrter Bildschirm zaehlt als angemeldet). +> Per Planer ausgeloest und mit Ergebnis `0x0` verifiziert. Alternative waere +> LogonType `Password` (gespeichertes Passwort), erfordert aber das +> Windows-Passwort. Aufruf zum Testen: