$linux-kurs.euLinux lernen · verstehen · anwenden

Praxisprojekte

Praxis30 min

Praxisprojekt: Logdateien analysieren

Ein kleines Projekt verbindet Pipes, grep, cut, sort, uniq, Schleifen und Fehlerbehandlung zu einem realistischen Workflow.

Nur wenn Sie diesen Button verwenden, wird Ihr Lernfortschritt lokal in diesem Browser gespeichert. Es erfolgt keine Übertragung an den Server.

Ziel

Wir möchten aus einer Logdatei relevante Fehlermeldungen extrahieren, Häufigkeiten zusammenfassen und die wichtigsten Muster anzeigen. Die genaue Struktur hängt vom verwendeten Logformat ab.

Erste Analyse als Pipeline

Angenommen, jede relevante Zeile enthält ERROR und das dritte durch Leerzeichen getrennte Feld enthält eine Komponente. Dann kann eine erste explorative Pipeline so aussehen:

Terminal / Bash
grep 'ERROR' app.log | awk '{print $3}' | sort | uniq -c | sort -nr | head

Danach robust machen

Aus der explorativen Pipeline wird erst dann ein brauchbares Skript, wenn Eingabedatei, Fehlerfälle, Exit-Status und Ausgabeformat sauber behandelt werden. Genau dieser Schritt ist didaktisch wichtig: Shell-Scripting ist nicht nur das Aneinanderreihen von Kommandos.

Terminal / Bash
#!/usr/bin/env bash
set -euo pipefail

log=${1:?Usage: $0 LOGFILE}
[[ -r $log ]] || { echo "Nicht lesbar: $log" >&2; exit 1; }

grep 'ERROR' "$log" | awk '{print $3}' | sort | uniq -c | sort -nr | head

Übung

Jetzt selbst ausprobieren

Erweitern Sie den Analyzer um ein optionales Level als zweites Argument.

Lösung / Hinweis anzeigen

Zum Beispiel `level=${2:-ERROR}` und anschließend einen passenden Filter verwenden.

Wissenscheck

Warum steht `sort` vor `uniq -c`?

Mit Trainer vertiefen

Dieses Thema als Schulung?

Auf linux-kurse.eu finden Sie Linux-, Administrations- und Bash-Schulungen von Bodenseo.

Linux-Schulungen ansehen