[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.