einstellungen: Zeitfenster, Radar-Schalter, Telegram-Test, Software-Stand und Altreste
Einstellungen, die etwas einstellen (services/einstellungen.py, /api/einstellungen): - Update-Zeitfenster: Wochentag und Uhrzeit des Update-Laufs als Drop-in mc2-autoupdate.timer.d/zeitfenster.conf. Gegen die Nachhol-Falle von Persistent=true (24.09.): Timer vor dem daemon-reload stoppen, Stempel auf jetzt, dann starten. Bei Fehler zurück auf das alte Drop-in. Während eines Update-Laufs abgelehnt. - Neustart nur im eingestellten Fenster (deploy/wartungsfenster.sh, drei Stunden ab der vollen Stunde des Beginns; Standard So 04:00-06:59). - Radar an/aus: disable --now bzw. enable + Stempel + start (kein Nachholen). deploy.sh respektiert den Schalter und startet den Radar-Timer nur mit Stempel; das Zeitfenster-Drop-in fasst er nie an. - Wächter: schläft der Timer eines Timer-Dienstes, ist ein alter Fehlschlag kein Befund mehr (der Dienst selbst ist static und schläft nie). - Telegram-Test je Instanz (/api/einstellungen/telegram-test und /api/homelab/einstellungen/telegram-test) über notify.sh -d; Ergebnis und Grund aus dem Melde-Log. notify.sh schreibt jetzt auch den Grund des gescheiterten Zweitwegs in den FALLBACK-Eintrag. - Einstellungsdatei mc2-einstellungen.json im Datenordner. Software-Stand: deploy.sh und homelab/ausrollen.sh schreiben nach dem Umschalten mc2-stand.json (deploy/stand-schreiben.py); /api/instanz liefert den Stand, die Einstellungen zeigen beide Instanzen und warnen bei Abweichung. Ohne Datei aus git, sonst unbekannt. Aufräumen: Altreste neben dem Betrieb aus einer festen, auf der Box geprüften Liste (Größe, Hinweis, nur was da und nicht in Gebrauch ist). Löschen nur per Kennung und Klick mit Rückfrage; Worktrees mit git worktree prune, Alt-Units mit daemon-reload, /opt/llamacpp notfalls mit sudo -n. Tests: pytest mit einem systemd-Abbild samt Nachhol-Regel, echtem notify.sh (Ersatz-Hermes, Tmp-Zugang, lokale Bot-API), Shell-Funktionen des Wartungsfensters und von deploy.sh; vitest für die Rückfragen der Schublade. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
40d2840b16
commit
3d8df1c6fd
+24
-4
@@ -102,13 +102,22 @@ env_wert() {
|
||||
wert="${wert%\'}"; wert="${wert#\'}"
|
||||
printf '%s' "$wert"
|
||||
}
|
||||
# Warum der Zweitweg scheiterte, steht seit 24.09.2026 mit im FALLBACK-Eintrag (der Telegram-Test der Oberfläche
|
||||
# zeigt es an). Ohne Klammern im Text: services/update_verlauf.py trennt den Eintrag an „): “.
|
||||
DIREKT_GRUND=""
|
||||
telegram_direkt() {
|
||||
local token chat thread text
|
||||
[ -r "$TG_ENV" ] || return 1
|
||||
local token chat thread text rc
|
||||
if [ ! -r "$TG_ENV" ]; then
|
||||
DIREKT_GRUND="Zugangsdatei $TG_ENV fehlt oder ist nicht lesbar"
|
||||
return 1
|
||||
fi
|
||||
token="$(env_wert TELEGRAM_BOT_TOKEN)"
|
||||
chat="$(env_wert TELEGRAM_HOME_CHANNEL)"
|
||||
thread="$(env_wert TELEGRAM_HOME_CHANNEL_THREAD_ID)"
|
||||
[ -n "$token" ] && [ -n "$chat" ] || return 1
|
||||
if [ -z "$token" ] || [ -z "$chat" ]; then
|
||||
DIREKT_GRUND="TELEGRAM_BOT_TOKEN oder TELEGRAM_HOME_CHANNEL fehlt in $TG_ENV"
|
||||
return 1
|
||||
fi
|
||||
text="$MSG"
|
||||
[ -n "$SUBJECT" ] && text="$SUBJECT
|
||||
$MSG"
|
||||
@@ -116,6 +125,15 @@ $MSG"
|
||||
| curl -sf -m 15 -o /dev/null --config - \
|
||||
--data-urlencode "chat_id=$chat" --data-urlencode "text=$text" \
|
||||
${thread:+--data-urlencode "message_thread_id=$thread"}
|
||||
rc=$?
|
||||
case "$rc" in
|
||||
0) return 0 ;;
|
||||
22) DIREKT_GRUND="Telegram lehnt ab, HTTP-Fehler – Token oder Chat falsch?" ;;
|
||||
6|7) DIREKT_GRUND="Telegram nicht erreichbar, keine Verbindung" ;;
|
||||
28) DIREKT_GRUND="Telegram antwortet nicht rechtzeitig" ;;
|
||||
*) DIREKT_GRUND="curl endete mit Code $rc" ;;
|
||||
esac
|
||||
return 1
|
||||
}
|
||||
if telegram_direkt; then
|
||||
# „OK telegram direkt“: services/update_verlauf.py erkennt beide Wege.
|
||||
@@ -124,7 +142,9 @@ if telegram_direkt; then
|
||||
fi
|
||||
|
||||
# Letzter Ausweg: Logfile + wall — Meldung darf nie verloren gehen.
|
||||
echo "$TS FALLBACK (telegram fehlgeschlagen: $SEND_OUT): $MSG" >> "$LOG"
|
||||
GRUND="$SEND_OUT"
|
||||
[ -n "$DIREKT_GRUND" ] && GRUND="${GRUND:+$GRUND; }Zweitweg: $DIREKT_GRUND"
|
||||
echo "$TS FALLBACK (telegram fehlgeschlagen: $GRUND): $MSG" >> "$LOG"
|
||||
if [ "${MC_NOTIFY_OHNE_WALL:-0}" != "1" ]; then
|
||||
printf '%s\n' "MC2-Meldung: ${SUBJECT:+$SUBJECT }$MSG" | wall 2>/dev/null || true
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user