2011-05-20 08:00:18
access_log-Statistiken mit awk
Heute gibt's nur kleine Einzeiler. Ein Klassiker zum Anzeigen der IP-Adressen eines Apache access_log, letzte 1000 Zugriffe und sortiert nach Häufigkeit der Zugriffe:
tail -n 1000 access_log | awk \ '{f[$1]++}END{for(g in f)print f[g]" "g}' \ | sort -n | tail -n 5
Möchte man nach der angefragten Datei sortieren, muss man '$1' durch '$7' ersetzen, für Sortierung nach Return Code '$9'.
tail -n 1000 access_log | awk \ '$9=="404"{f[$7" "$11]++}END{for(g in f)print f[g]" "g}' \ | sort -n | tail -n 5
Das sortiert die Zeilen mit 404 Return Code ("File Not Found") und gibt dabei die angeforderte Datei und den Referer an.
tail -n 1000 access_log | awk \ '$9~/30./{f[$7" "$11]++}END{for(g in f)print f[g]" "g}' \ | sort -n | tail -n 5
Statt 404 werden hier alle 30x Redirects sortiert.