[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Mitarbeitermotivation / WWW



Hallo!

Florian Seiffert schrieb:
> Ich bin mehrfach angesprochen worden, wie denn das kleine
> Script aussieht, mit dem wir nachts unsere WWW-Logfiles
> auswerten und den Bearbeitern zumailen.

Auch wenn's off-topic ist (nein, ich werde jetzt NICHT meine ganze
Skriptsammlung hier abkippen :-), hier das Skript, was mir hier
taeglich eine nach Abrufzahl sortierte Aufstellung der WWW-Server-
benutzung (ebenfalls fuer CERN httpd) gibt. Vielleicht kann's ja
jemand brauchen...

"logmask" ganz oben im Skript muss angepasst werden. Das Ding heisst
bei mir "wwwstat" und kann folgendermassen aufgerufen werden:

* wwwstat (ohne Parameter)
  liefert Daten vom Vortag
* wwwstat [-a] [-<n>] [<date>]
  liefert weitere Daten, Option "-a" liefert *alles*, "-<n>" (n ist
  eine Zahl) liefert die "top n" der abgerufenen Seiten, ferner kann,
  natuerlich nicht zusammen mit "-a", ein Datum in der Form, wie's der
  CERN httpd auch wegloggt, angegeben werden, um die Daten eines be-
  stimmten Tages zu bekommen

Beispiele:

wwwstat			  Daten des Vortages liefern
wwwstat -20		  Top 20 des Vortages liefern
wwwstat -a -10		  Top 10 ueber alle Logfiles liefern
wwwstat -10 20/Jan/1996   Top 10 vom 20. Januar 1996 liefern

Ach ja, das Ding laeuft hier auf einer Linux-Schuessel, sollte aber
auch auf System-V-Maschinen einsetzbar sein. Alte BSD's werden nicht
gehen, da der "date" dort nicht so flexibel parametrisierbar ist und
deswegen wahrscheinlich einfach Muell liefert - einfach ausprobieren!

Viel Spass damit,
Daniel

---------------------------------------------------------------------------
#!/bin/sh

logmask='/local/httpd/logs/httpd-log.*'
tmp=/tmp/wwwstat.$$

case $1 in
  -a)
    outcmd="cat"
    all=1
    shift
    ;;
  -*)
    outcmd="head $1"
    shift
    all=0
    ;;
  *)
    outcmd="cat"
    all=0
    ;;
esac

if [ "$1" = "" ]
then
  if [ "$all" = "0" ]
  then
    the_date=`date '+%d/%b/%Y' -d '1 day ago'`
    grep '\['$the_date':.*\]' $logmask
  else
    cat $logmask
  fi
else
  grep '\['$1':.*\]' $logmask
fi >$tmp

echo 'Seiten nach Abrufzahl sortiert:'
echo ''

grep -i '] .GET' $tmp | sed 's/^.*"GET //' | sed 's/ HTTP.*$//' |
sed 's/?.*$//' | sed 's/%7[eE]/~/' | sed 's/\/$//' | sed 's/^$/<home page>/' |
sort | uniq -c | sort -rn | $outcmd

echo ''
echo 'Anzahl http-Requests gesamt:' `wc -l $tmp | awk '{print $1}'`

rm $tmp
---------------------------------------------------------------------------


-- 
Daniel Roedding     daniel _at__ fiction.pb.owl.de               INTJ
Padertown City      +49-5251-541965 voice, 541334 data     http://www.owl.de


Listeninformationen unter http://www.inetbib.de.