status.txt zeigt die Zusammenfassung, nicht die erste beliebige Zeile
Die Grund-Zeile nahm bei fehlendem Alarm schlicht die erste Ausgabezeile. Beim ersten Prod-Lauf nach dem Versiegeln stand dort deshalb die einmalige Notiz "Grundlage fuer die Rehash-Ueberwachung wird gesetzt" statt des Ergebnisses "OK: Checkpoint N erstellt" - eine Randnotiz verdeckte die Zusammenfassung. Jetzt: bei Alarm die ALARM-Zeile, sonst die OK-Zeile, und erst wenn beides fehlt die erste Zeile ueberhaupt. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -90,12 +90,15 @@ while true; do
|
||||
*) LAGE="unbekannter Code" ;;
|
||||
esac
|
||||
echo "[$INSTANZ] $ZEIT exit=$CODE ($LAGE)"
|
||||
# Erste erklaerende Zeile mitnehmen: bei Alarm die ALARM-Zeile, sonst die
|
||||
# erste Ausgabezeile ueberhaupt.
|
||||
# Die aussagekraeftigste Zeile mitnehmen, nicht einfach die erste.
|
||||
#
|
||||
# Bei Alarm ist das die ALARM-Zeile. Sonst die Zusammenfassung ("OK: …") -
|
||||
# denn ein Lauf kann davor beilaeufige Hinweise ausgeben (etwa das einmalige
|
||||
# Setzen einer Ueberwachungs-Grundlage), und die verdeckten sonst das
|
||||
# Ergebnis. Erst wenn beides fehlt, die erste Zeile ueberhaupt.
|
||||
GRUND=$(grep -m1 '^ALARM: ' /tmp/lauf.log | sed 's/^ALARM: //')
|
||||
if [ -z "$GRUND" ]; then
|
||||
GRUND=$(grep -m1 -v '^[[:space:]]*$' /tmp/lauf.log)
|
||||
fi
|
||||
[ -z "$GRUND" ] && GRUND=$(grep -m1 '^OK: ' /tmp/lauf.log)
|
||||
[ -z "$GRUND" ] && GRUND=$(grep -m1 -v '^[[:space:]]*$' /tmp/lauf.log)
|
||||
{
|
||||
printf '%s exit=%s %s\n' "$ZEIT" "$CODE" "$LAGE"
|
||||
[ -n "$GRUND" ] && printf 'Grund: %s\n' "$GRUND"
|
||||
|
||||
Reference in New Issue
Block a user