File rebuild_analog_stats of Package Analog

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

HTTP_LOG_DIR="$1"
ANALOG_DIR="/usr/share/analog/html"

if [ ! $HTTP_LOG_DIR ]; then
	echo ""
	echo "Usage: $0 directory_path"
	echo ""
	echo "Used to rebuild analog statistics for the specified LOG directory (archive)."
	echo "The 'directory_path' is where your log files are (ex. /var/log/apache2/my.virtual.host)"
	echo ""
	exit 0
fi


for DIR in $HTTP_LOG_DIR/*; do
	if [ -d $DIR ]; then
	echo "Rebuilding stats in $DIR"
		if [ -f $DIR/access_log.gz ]; then
			LOG="$DIR/access_log"
			HTTP_HOST="`basename $HTTP_LOG_DIR`"
			DATE="`basename $DIR`"
			INDEX="$ANALOG_DIR/stats/$HTTP_HOST/$DATE/index.html"
			if [ ! -f $INDEX ]; then
				if [ ! -d $ANALOG_DIR/charts/$HTTP_HOST/$DATE ]; then
					mkdir -p $ANALOG_DIR/charts/$HTTP_HOST/$DATE
					chown wwwrun.www $ANALOG_DIR/charts/$HTTP_HOST/$DATE
				fi
				if [ ! -d $ANALOG_DIR/stats/$HTTP_HOST/$DATE ]; then
					mkdir -p $ANALOG_DIR/stats/$HTTP_HOST/$DATE
					chown wwwrun.www $ANALOG_DIR/stats/$HTTP_HOST/$DATE
				fi
				if [ ! -d $ANALOG_DIR/charts/$HTTP_HOST/$DATE ]; then
					mkdir -p $ANALOG_DIR/charts/$HTTP_HOST/$DATE
					chown wwwrun.www $ANALOG_DIR/charts/$HTTP_HOST/$DATE
				fi
			echo "$DIR $HTTP_HOST $INDEX"

				gunzip $LOG.gz
				analog +C"DNS NONE" +C"HOSTNAME $HTTP_HOST" \
					+C"HOSTURL http://$HTTP_HOST" \
					+C"REFREPEXCLUDE http://$HTTP_HOST/*" \
					+C"REFSITEEXCLUDE http://$HTTP_HOST/" \
					+C"DIREXCLUDE /stats" \
					+C"OUTFILE $INDEX" \
					+C"CHARTDIR charts/$HTTP_HOST/$DATE/" \
					+C"LOCALCHARTDIR $ANALOG_DIR/charts/$HTTP_HOST/$DATE/" \
					+C"LOGFORMAT COMBINED" \
					+C"LOGFORMAT REFERRER" \
					+C"LOGFORMAT (%S %j %u [%d/%M/%Y:%h:%n:%j] \"%r\" %c %b%j)" \
					$LOG
				chown wwwrun.www $ANALOG_DIR/stats/$HTTP_HOST/$NEW_DIR $ANALOG_DIR/charts/$HTTP_HOST/$NEW_DIR
				gzip $LOG
			fi
		fi
	fi
done
openSUSE Build Service is sponsored by