summaryrefslogtreecommitdiff
path: root/localwebstats
diff options
context:
space:
mode:
authorJonas Smedegaard <dr@jones.dk>2002-01-27 23:33:41 +0000
committerJonas Smedegaard <dr@jones.dk>2002-01-27 23:33:41 +0000
commit7115b415fabc79d7767c344cd861be96167e0590 (patch)
tree268bf82e2ed2b460950c97f4f932909372deb5e6 /localwebstats
parent554bf21ff2353107d6290c03ebf8eac14889f409 (diff)
Add ModLogAn support.
Sort log lists (what a bummer!).
Diffstat (limited to 'localwebstats')
-rwxr-xr-xlocalwebstats68
1 files changed, 65 insertions, 3 deletions
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