Extra Blog

Web Logfile mal schnell auswerten

Gelegentlich interesiert mich auf der Console ein schneller Überlick, welche ips welche Inhalte aufrufen.

Besonders wenn man ad hoc eine schnelle Aussage benötigt,  dauert eine Auswertung über die üblichen tools wie webalizer etc. zu lange und ist häufig leider nicht auf einen Besucher / IP reduzierbar.

Ein kleines Script hilft hier mal wieder weiter.

#!/bin/sh
LOGFILE=$1;
for ip in `cut -d ' ' -f 1 $LOGFILE | sort -u`; do
  echo
  echo "##################################################################################"
  echo IP: $ip Hostname: `nslookup $ip | grep name`
  for URL in `grep "$ip" $LOGFILE | egrep -v "\.(ico|gif|jpg|jpeg|png|js|css)" |\
              cut -d '"' -f 2 | cut -d '"' -f 1 | cut -d ' ' -f 2 | sort -u`; do
    echo `grep "$URL" $LOGFILE | grep "$ip" | wc -l` $URL
  done
done

Der Aufruf ist recht einfach:

./greplog.sh <kompletter Pfad zum Logfile> | more

natürlich kann man dies etwas besser an die eigenen Bedürfnisse anpassen. In konkreten Fällen hat man schnell einen Überblick, wer welche Webseiten aufruft und vor allem wie oft. So findet man eventuell zügig einen Spambot.

Update: Besten dank an Joe User aus dem Rootforum der mich auf egrep brachte.

Noch keine Kommentare

Die Kommentarfunktion wurde vom Besitzer dieses Blogs in diesem Eintrag deaktiviert.