Jetzt setzen wir alles, was du bisher gelernt hast, in einem realistischen Projekt um.
Ein typisches Einsatzfeld für awk ist die Analyse von Webserver-Logs – z. B. von Apache oder Nginx.
Diese Logs enthalten viele Informationen, die du mit awk schnell auswerten kannst.
🔹 Beispiel-Logdatei
192.168.1.10 - - [20/Sep/2025:14:33:15 +0200] "GET /index.html HTTP/1.1" 200 532
Die Felder enthalten:
- IP-Adresse des Clients
- Platzhalter
- -
(für User und Auth) - Datum und Uhrzeit in
[]
- HTTP-Methode und Pfad in
""
- Statuscode (z. B. 200, 404)
- Antwortgröße in Bytes
👉 Mit awk kannst du diese Felder aufschlüsseln.
🔹 IP-Adressen zählen
Welche IPs greifen am häufigsten zu?
awk '{print $1}' access.log | sort | uniq -c | sort -nr | head
Ausgabe (Beispiel):
120 192.168.1.10 85 203.0.113.5 30 10.0.0.7
👉 So erkennst du schnell die aktivsten Clients.
🔹 Statuscodes auswerten
Wie viele Anfragen enden mit welchem Statuscode?
awk '{print $9}' access.log | sort | uniq -c | sort -nr
Ausgabe:
200 200 35 404 10 500
👉 Jetzt weißt du, wie oft Seiten erfolgreich, nicht gefunden oder fehlerhaft waren.
🔹 Beliebteste Seiten finden
awk '{print $7}' access.log | sort | uniq -c | sort -nr | head
Ausgabe (Beispiel):
150 /index.html 120 /shop.html 45 /kontakt.html
👉 Feld $7
enthält den Pfad der URL.
🔹 Datenmenge summieren
Wie viele Bytes wurden insgesamt übertragen?
awk '{sum += $10} END {print "Gesamt:", sum, "Bytes"}' access.log
Ausgabe:
Gesamt: 934520 Bytes
👉 Damit kannst du die Serverlast grob einschätzen.
🔹 Uhrzeiten analysieren
Wann war die Last am höchsten?
awk -F: '{print $2}' access.log | sort | uniq -c | sort -nr
Ausgabe (Beispiel):
90 14 70 15 35 12
👉 $2
nach -F
: gibt die Stunde aus dem Zeitstempel zurück.
🔹 Übung
- Lade ein Apache- oder Nginx-Logfile von deinem eigenen System (
/var/log/apache2/access.log
oder/var/log/nginx/access.log
). - Zähle die häufigsten IPs.
- Liste alle Statuscodes auf.
- Finde heraus, welche Seite am häufigsten aufgerufen wurde.
- Berechne die gesamte übertragene Datenmenge.
- Bonus: Finde die „Rush Hour“ deines Servers – welche Stunde war am aktivsten?
✅ Zusammenfassung
- awk eignet sich perfekt für Log-Analyse.
- Typische Aufgaben: IPs zählen, Statuscodes auswerten, beliebteste Seiten finden, Datenmenge summieren.
- Mit Pipes (
sort
,uniq
,head
) kannst du die Ergebnisse verfeinern. - So erhältst du wertvolle Einblicke in deinen Server – ganz ohne externe Tools.
👉 Im nächsten Kapitel bekommst du noch Bonusartikel, in denen wir awk und sed kombinieren – damit du beide Tools zusammen als Power-Werkzeug nutzen kannst.
📚 Inhaltsverzeichnis
👉 awk Kapitel 1: Felder & Zeilen verstehen
👉 awk Kapitel 2: Muster & Bedingungen in awk
👉 awk Kapitel 3: Textbearbeitung & Formatierung mit awk
👉 awk Kapitel 4: Berechnungen & Statistiken mit awk
👉 awk Kapitel 5: Eigene awk-Skripte schreiben
👉 awk Kapitel 6: Praxisprojekt – Webserver-Logs analysieren mit awk
⭐ Bonus-Kapitel
👉 awk Bonus 1: Unterschiede & Gemeinsamkeiten von sed und awk
👉 awk Bonus 2: Textbereinigung mit sed, Datenanalyse mit awk
👉 awk Bonus 3: Kombinieren in einer Pipeline – sed & awk zusammen einsetzen
👉 awk Bonus 4: Praxisprojekt – Logdateien filtern, bereinigen und auswerten
👉 awk Bonus 5: Profi-Tricks – Reguläre Ausdrücke für sed & awk im Zusammenspiel