From 7115b415fabc79d7767c344cd861be96167e0590 Mon Sep 17 00:00:00 2001 From: Jonas Smedegaard Date: Sun, 27 Jan 2002 23:33:41 +0000 Subject: Add ModLogAn support. Sort log lists (what a bummer!). --- localwebstats | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 65 insertions(+), 3 deletions(-) (limited to 'localwebstats') diff --git a/localwebstats b/localwebstats index c94fcb2..3212139 100755 --- a/localwebstats +++ b/localwebstats @@ -48,6 +48,10 @@ if [ "$stamp" = "ignore" ]; then exit 0 fi +ROOT=1 +user=www-data +group=www-data + LOGROOT=/var/log/apache WEBROOT=/var/www @@ -55,13 +59,14 @@ WEBROOT=/var/www function statsdir() { echo $2/VIRTUAL/stats.$(dnsdomainname)/www/$3; } function webdirs() { find $1 -type d -mindepth 1 -maxdepth 1 | grep '\.*\.' | sed 's!$1!!'; } #function logfiles() { $(ls -r $LOGDIR/*-access*.gz) $(ls -r $LOGDIR/access*.??.gz) $(ls -r $LOGDIR/access*.?.gz) $(ls -r $LOGDIR/access*.?); } -function logcontentresolved() { for file in $(find $1/$3 -name '????.??.00.gz' -type f -mindepth 1 -maxdepth 1 -follow); do zcat $file; done; for file in $(find $1/$3 -name '????.??.00' -type f -mindepth 1 -maxdepth 1 -follow); do cat $file; done; } -function logcontent() { for file in $(find $1/$3 -name '????.??.??.gz' ! -name '*00.gz' -type f -mindepth 1 -maxdepth 1 -follow); do zcat $file; done; for file in $(find $1/$3 -name '????.??.??' ! -name '*00' -type f -mindepth 1 -maxdepth 1 -follow); do cat $file; done; } +function logcontentresolved() { for file in $(find $1/$3 -name '????.??.00.gz' -type f -mindepth 1 -maxdepth 1 -follow | sort); do zcat $file; done; for file in $(find $1/$3 -name '????.??.00' -type f -mindepth 1 -maxdepth 1 -follow | sort); do cat $file; done; } +function logcontent() { for file in $(find $1/$3 -name '????.??.??.gz' ! -name '*00.gz' -type f -mindepth 1 -maxdepth 1 -follow | sort); do zcat $file; done; for file in $(find $1/$3 -name '????.??.??' ! -name '*00' -type f -mindepth 1 -maxdepth 1 -follow | sort); do cat $file; done; } function host() { cat $2/VIRTUAL/$3/hostname || exit1 "Unable to get hostname for virtual host."; } function domain() { cat $2/VIRTUAL/$3/domainname || exit1 "Unable to get domainname for virtual host."; } function analog_cfg() { echo /etc/analog_$3.conf; } function rmagic_cfg() { echo /etc/rmagic/rmagic_$3.conf; } function webalizer_cfg() { echo /etc/webalizer_$3.conf; } +function modlogan_cfg() { echo /etc/modlogan/modlogan_$3.conf; } function pre_init() { true; } function post_init() { true; } function pre_update() { true; } @@ -83,6 +88,7 @@ LOGRESOLVE_BIN="/usr/sbin/logresolve" ANALOG_BIN="/usr/bin/analog" RMAGIC_BIN="/usr/bin/rmagic" WEBALIZER_BIN="/usr/bin/webalizer" +MODLOGAN_BIN="/usr/bin/modlogan" AWSTATS_BIN="/usr/lib/cgi-bin/awstats.pl" function awstats_setlog() { sed -e "s!^\(LogFile=\).*\$!\\1$2!" $1 > $1.tmp; mv $1.tmp $1; } @@ -107,6 +113,7 @@ for WEBSITE in $WEBSITES; do ANALOG_CFG=$(analog_cfg $LOGROOT $WEBROOT $WEBSITE) || exit1 "Unable to resolve ANALOG_CFG." RMAGIC_CFG=$(rmagic_cfg $LOGROOT $WEBROOT $WEBSITE) || exit1 "Unable to resolve RMAGIC_CFG." WEBALIZER_CFG=$(webalizer_cfg $LOGROOT $WEBROOT $WEBSITE) || exit1 "Unable to resolve WEBALIZER_CFG." + MODLOGAN_CFG=$(modlogan_cfg $LOGROOT $WEBROOT $WEBSITE) || exit1 "Unable to resolve MODLOGAN_CFG." if [ $stamp = "init" ]; then [ $DEBUG ] && echo "Execute $WEBSITE PRE_INIT" @@ -123,6 +130,7 @@ for WEBSITE in $WEBSITES; do ANALOG_OPTIONS="-G +g/etc/analog.conf +g$ANALOG_CFG +A -a" RMAGIC_OPTIONS="" WEBALIZER_OPTIONS="-c /etc/webalizer.conf -c $WEBALIZER_CFG -o $STATSDIR/webalizer -f" + MODLOGAN_OPTIONS="-c $WEBALIZER_CFG" AWSTATS_OPTIONS="-update" FQDN_ESC=`echo "$HOST.$DOMAIN" | sed -e 's/\./\\\./g'` # needed for awstats config @@ -132,12 +140,14 @@ for WEBSITE in $WEBSITES; do ANALOG_OPTIONS="$ANALOG_OPTIONS +q" RMAGIC_OPTIONS="$RMAGIC_OPTIONS" WEBALIZER_OPTIONS="$WEBALIZER_OPTIONS -T" + MODLOGAN_OPTIONS="$MODLOGAN_OPTIONS" AWSTATS_OPTIONS="$AWSTATS_OPTIONS -showsteps" else JDRESOLVE_OPTIONS="$JDRESOLVE_DB -n" ANALOG_OPTIONS="$ANALOG_OPTIONS -q" RMAGIC_OPTIONS="$RMAGIC_OPTIONS -statistics_Verbose=NONE" WEBALIZER_OPTIONS="$WEBALIZER_OPTIONS -Q" + MODLOGAN_OPTIONS="$MODLOGAN_OPTIONS" AWSTATS_OPTIONS="$AWSTATS_OPTIONS" fi @@ -214,6 +224,51 @@ HideReferrer $DOMAIN/ [ $DEBUG ] && echo "$WEBSITE: Create initial Webalizer stats" cat $LOGDATARESOLVED | $WEBALIZER_BIN $WEBALIZER_OPTIONS -N 0 - || true fi + if [ -x $MODLOGAN_BIN ]; then + [ $DEBUG ] && echo "$WEBSITE: Create/update ModLogAn config" + echo "\ +# NB! This file is automatically generated. Do not edit directly! +# Instead, put additions/overrides in $MODLOGAN_CFG.local + +[global] +includepath = /etc/modlogan +include = modlogan.def.conf,global + +loadplugin = input_clf +loadplugin = output_modlogan +loadplugin = processor_web + +outputdir=$STATSDIR/modlogan +incremental = 0 +debug_level = 0 + +[processor_web] +include = modlogan.def.conf,processor_web +searchengines = match.searchengines.conf +debug_searchengines = 0 +hidereferrer = \"^http://$HOST.$DOMAIN\" + +[output_modlogan] +include = modlogan.def.conf,output_modlogan +hostname = http://$HOST.$DOMAIN + +[input_clf] +include = match.os.conf,matchos +include = match.ua.conf,matchua + +inputfile = - +"\ + > $MODLOGAN_CFG + [ -s $MODLOGAN_CFG.local ] && cat $MODLOGAN_CFG.local >> $MODLOGAN_CFG + mkdir $STATSDIR/modlogan + [ $ROOT ] && chown $user:$group $STATSDIR/modlogan + [ $DEBUG ] && echo "$WEBSITE: Create initial ModLogAn stats" + if [ $ROOT ]; then + cat $LOGDATARESOLVED | su $user -c "$MODLOGAN_BIN $MODLOGAN_OPTIONS" || true + else + cat $LOGDATARESOLVED | $MODLOGAN_BIN $MODLOGAN_OPTIONS || true + fi + fi if [ -x $AWSTATS_BIN ]; then [ $DEBUG ] && echo "$WEBSITE: Create/update AWStats config" echo "\ @@ -238,7 +293,6 @@ ShowLinksOnUrl=1 ShowFlagLinks=0 "\ >/etc/awstats/awstats.$WEBSITE.conf - [ -s $WEBALIZER_CFG.local ] && cat $WEBALIZER_CFG.local >> $WEBALIZER_CFG mkdir $STATSDIR/awstats [ $DEBUG ] && echo "$WEBSITE: Create initial AWStats stats" awstats_setlog /etc/awstats/awstats.$WEBSITE.conf $LOGDATARESOLVED @@ -277,6 +331,14 @@ ShowFlagLinks=0 [ $DEBUG ] && echo "$WEBSITE: Update Webalog stats" zcat -f $LOGDATA | $WEBALIZER_BIN $WEBALIZER_OPTIONS -N 0 - fi + if [ -x $MODLOGAN_BIN ]; then + [ $DEBUG ] && echo "$WEBSITE: Update ModLogAn stats" + if [ $ROOT ]; then + cat $LOGDATARESOLVED | su $user -c "$MODLOGAN_BIN $MODLOGAN_OPTIONS" + else + cat $LOGDATARESOLVED | $MODLOGAN_BIN $MODLOGAN_OPTIONS + fi + fi if [ -x $AWSTATS_BIN ]; then [ $DEBUG ] && echo "$WEBSITE: Update AWStats stats" awstats_setlog /etc/awstats/awstats.$WEBSITE.conf $LOGDATA -- cgit v1.2.3