File analog-monthly of Package analog

#!/bin/sh
# ANALOG
# Rotate httpd logs for all virtual hosts and run analog for each of them
#

NEW_DIR="`date --date '1 day ago' +%Y-%m`"
ANALOG_DIR="/usr/share/analog/html"

HTTP_LOG_DIRS="/var/log/apache2"
APACHE_PROCESS="httpd2-prefork"

for HTTP_LOG_DIR in $HTTP_LOG_DIRS; do
 	for DIR in $HTTP_LOG_DIR/*; do
 		if [ -d $DIR ]; then
 			if [ -f $DIR/access_log ]; then
 				HTTP_HOST="`basename $DIR`"
 				mkdir $DIR/$NEW_DIR
 				mv $DIR/access_log $DIR/$NEW_DIR/
 				kill -HUP `pidof $APACHE_PROCESS`
 				rm $DIR/error_log
 			fi
 		fi
 	done
done

for HTTP_LOG_DIR in $HTTP_LOG_DIRS; do
	for DIR in $HTTP_LOG_DIR/*; do
		if [ -d $DIR ]; then
			echo $DIR
			LOG="$DIR/$NEW_DIR/access_log"
			HTTP_HOST="`basename $DIR`"
			INDEX="$ANALOG_DIR/stats/$HTTP_HOST/$NEW_DIR/index.html"
			if [ ! -f $ANALOG_DIR/stats/$HTTP_HOST/$NEW_DIR ]; then
				mkdir -p $ANALOG_DIR/stats/$HTTP_HOST/$NEW_DIR
			fi
			if [ ! -f $ANALOG_DIR/stats/$HTTP_HOST/$NEW_DIR ]; then
				mkdir -p $ANALOG_DIR/charts/$HTTP_HOST/$NEW_DIR
			fi
			echo $INDEX
			if [ -f $LOG ]; then
				mv $LOG $LOG.tmp
				cat $LOG.tmp | /usr/sbin/logresolve.pl2 > $LOG
				analog +C"DNS WRITE" \
					+C"HOSTNAME $HTTP_HOST" \
					+C"HOSTURL http://$HTTP_HOST" \
					+C"REFREPEXCLUDE http://$HTTP_HOST/*" \
					+C"REFSITEEXCLUDE http://$HTTP_HOST/" \
					+C"DIREXCLUDE /stats" \
					+C"CHARTDIR charts/$HTTP_HOST/$NEW_DIR/" \
					+C"LOCALCHARTDIR $ANALOG_DIR/charts/$HTTP_HOST/$NEW_DIR/" \
					+C"OUTFILE $INDEX" \
					+C"LOGFORMAT COMBINED" \
					+C"LOGFORMAT REFERRER" \
					+C"LOGFORMAT (%S %j %u [%d/%M/%Y:%h:%n:%j] \"%r\" %c %b%j)" \
					$LOG
				gzip $LOG $LOG.tmp
			fi
			chown wwwrun.www -R $ANALOG_DIR/stats/$HTTP_HOST/$NEW_DIR $ANALOG_DIR/charts/$HTTP_HOST/$NEW_DIR
		fi
	done
done
openSUSE Build Service is sponsored by