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:

  1. IP-Adresse des Clients
  2. Platzhalter - - (für User und Auth)
  3. Datum und Uhrzeit in []
  4. HTTP-Methode und Pfad in ""
  5. Statuscode (z. B. 200, 404)
  6. 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

  1. Lade ein Apache- oder Nginx-Logfile von deinem eigenen System (/var/log/apache2/access.log oder /var/log/nginx/access.log).
  2. Zähle die häufigsten IPs.
  3. Liste alle Statuscodes auf.
  4. Finde heraus, welche Seite am häufigsten aufgerufen wurde.
  5. Berechne die gesamte übertragene Datenmenge.
  6. 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