Cron-Email-Lärm mit logdiff reduzieren

Date: Fri, Nov 28, 2025

Tag(s): Logdiff Cron Logs Devops Rust Open-Source CLI

Wenn Cron-Jobs oder geplante Scanner bei jeder Ausführung denselben Output in Ihr Postfach schicken, wird es schwer, wichtige Veränderungen zu erkennen. logdiff ist ein kleines Open-Source-Tool in Rust, das gestreamten Output pro Schlüssel cached und nur die Unterschiede zur vorherigen Ausführung ausgibt: Entweder als Unified-Diff oder nur die geänderten Zeilen. Dadurch werden E-Mail-Benachrichtigungen und Alerts deutlich aussagekräftiger.

Warum das wichtig ist

Was logdiff macht

Schnelle Installation

Mit Cargo installieren:

cargo install --git https://codeberg.org/chapati/logdiff logdiff

Oder aus dem Quellcode bauen:

git clone https://codeberg.org/chapati/logdiff
cd logdiff
cargo build --release
# das Binary liegt in target/release/logdiff

Beispiele zur Verwendung

Pipe eine Logdatei in logdiff mit einem Schlüssel. Der erste Lauf erzeugt die Baseline und gibt nichts aus:

cat logfile.log | logdiff mein_schluessel

Beim nächsten Lauf wird die Unified-Diff-Ausgabe zwischen vorheriger und aktueller Eingabe angezeigt. Um nur die geänderten Zeilen (mit + bzw. -) zu erhalten, verwenden Sie:

cat logfile.log | logdiff --only-lines mein_schluessel

Cron-Beispiel (praktisch)

Eine reale Cron-Zeile, die lynis täglich um 04:30 ausführt, die Ausgabe durch logdiff filtert und nur geänderte Zeilen per Mail verschickt:

30 4 * * * (lynis --cronjob 2>&1 | logdiff --only-lines lynis | mail -s "san: lynis" [email protected])

Wie das hilft

Fortgeschrittene Tipps

Cache-Ort und Fallback

Standardmäßig speichert logdiff Cache-Dateien in $XDG_CACHE_HOME/logdiff oder ~/.cache/logdiff. Es nutzt das System-diff; ist diff nicht vorhanden, fällt logdiff auf eine manuelle Vergleichslogik zurück.

Lizenz & Repo

logdiff ist Open Source unter der AGPL-3.0-Lizenz. Projekt, Issues und Beiträge finden Sie unter:

https://codeberg.org/chapati/logdiff

Fazit

Dieses kleine CLI-Tool eignet sich hervorragend für alle, die weniger, dafür aber relevantere Benachrichtigungen von geplanten Aufgaben möchten. Bauen Sie es in Ihre Cron-Pipelines ein und erhalten Sie nur noch Benachrichtigungen, die wirklich zählen.