Aufgabe: Logfiles nach Response-Codes 404 (not found) und 403 (forbidden) durchsuchen und eine Aufstellung mit Anzahl der Fundstellen per Mail versenden. Die awk-Datei muss mit chmod +x /home/user/404.awk Ausführungsrechte bekommen.
awk-Skript (ausführbar) in /home/user/404.awk (durch eigenen Pfad ersetzen):
#!/usr/bin/awk -f # read access.log and retrieve all 404 and 403 pages BEGIN { } { if ( $9 == 404 ) { a404[$7] += 1; } if ( $9 == 403 ) { a403[$7] +=1; } } END { for (i in a404) { print "404",i,a404[i]; } for (i in a403) { print "403",i,a403[i]; } }
Logfile liegt in /var/log/apache2/access.log und die Mailadresse name@email.com muss mit eigener Adresse ersetzt werden.
Aufruf:
/home/user/404.awk /var/log/apache2/access.log | sort | mail -s `uname -n` name@email.com
Damit wird dann die sortierte Ausgabe (erst 403er, danach 404er Errors) per Mail versandt.