+#!/bin/sh
+# /etc/cron.daily/webalizer: Webalizer daily maintenance script
+# This script was originally written by
+# Remco van de Meent <remco@debian.org>
+# and now, all rewrited by Jose Carlos Medeiros <jose@psabs.com.br>
+
+# This script just run webalizer against all .conf files in /etc/webalizer
+# Modified for use at HCoop with config and output stored in AFS
+
+WEBALIZER=/usr/bin/webalizer
+WEBALIZER_CONFDIR=/afs/hcoop.net/common/etc/domtool/webalizer/config
+WEBBWSTATSDIR=/afs/hcoop.net/user/h/hc/hcoop/portal-root/etc/stats
+
+[ -x ${WEBALIZER} ] || exit 0;
+[ -d ${WEBALIZER_CONFDIR} ] || exit 0;
+
+/usr/bin/k5start -U -b -K 300 -t \
+ -p /var/run/webalizer-k5start.pid \
+ -f /etc/keytabs/service/webalizer
+
+#${WEBALIZER} -c /etc/webalizer/main.conf -Q || continue
+
+for i in ${WEBALIZER_CONFDIR}/*/*.conf; do
+ # exists ?
+ [ -f $i ] || continue;
+
+ # run agains a rotated or normal logfile
+ LOGFILE=`awk '$1 ~ /^LogFile$/ {print $2}' $i`;
+
+ # empty ?
+ [ -s "${LOGFILE}" ] || continue;
+ # readable ?
+ [ -r "${LOGFILE}" ] || continue;
+
+ # there was a output ?
+ OUTDIR=`awk '$1 ~ /^OutputDir$/ {print $2}' $i`;
+ # exists something ?
+ [ "${OUTDIR}" != "" ] || continue;
+ # its a directory ?
+ [ -d ${OUTDIR} ] || continue;
+ # its writable ?
+ [ -w ${OUTDIR} ] || continue;
+
+ # Run Really quietly, exit with status code if !0
+ ${WEBALIZER} -c ${i} -Q || continue;
+ RET=$?;
+
+ # Non rotated log file
+ NLOGFILE=`awk '$1 ~ /^LogFile$/ {gsub(/\.[0-9]+(\.gz)?/,""); print $2}' $i`;
+
+ # check current log, if last log is a rotated logfile
+ if [ "${LOGFILE}" != "${NLOGFILE}" ]; then
+ # empty ?
+ [ -s "${NLOGFILE}" ] || continue;
+ # readable ?
+ [ -r "${NLOGFILE}" ] || continue;
+
+ ${WEBALIZER} -c ${i} -Q ${NLOGFILE};
+ RET=$?;
+ fi;
+done;
+
+/usr/local/sbin/webbw > $WEBBWSTATSDIR/webbw
+/usr/local/sbin/webbw 1 > $WEBBWSTATSDIR/webbw.last
+/usr/local/sbin/webbw 2 > $WEBBWSTATSDIR/webbw.last2
+
+
+[ -r /var/run/webalizer-k5start.pid ] && \
+ kill `cat /var/run/webalizer-k5start.pid `;
+
+# exit with webalizer's exit code
+exit $RET;
+