REBUILD Awstats from old logs

3 posts / 0 new
Last post
#1 Tue, 05/04/2010 - 20:46
steven

REBUILD Awstats from old logs

I recently moved the servers to a new host and for 3-4 months awstats hadn't been working because I failed to install Geoip, so therefore every domain has between Jan and today no visitor data in awstats.

So lets import these logs, but how?

I can see that awstats.pl needs to run inside a wrapper.. I can see /usr/libexec/webmin/virtualmin-awstats/run-all-awstats.pl that updates all domains..

But I'm having no luck modifying that script to temporarily read /home/$domain/logs/access_log (or ideally be able to extract the access_log.x.gz files -- that would be great!)

Is there an existing script somewhere here to rebuild awstats ?? Would appreciate any help as this is urgent.

Regards Steven

Thu, 06/17/2010 - 08:13
lulatsch66

Hi Steven,

did you have any success on using awstats for you old log files, in the meantime?

Thanx, Falko

Mon, 07/19/2010 - 14:50
lvsys

Same problem with me. Here's the script I created. It works very well for processing all the 'awstats'.


#!/bin/bash
source ./.bashrc
OPT_SITE=$1

if [ "$OPT_SITE" == "-" ]; then
OPT_SITE=""
fi

# make sure we're running as root
if [ "$UID" != "0" ]; then
echo "Sorry, must be root. Exiting..."
return 1
fi

for f in `ls -1 /etc/awstats`; do
if [ ! -L "/etc/awstats/$f" -a "$f" != "awstats.conf" -a "$f" != "awstats.conf.local" ];
then
part1=`echo $f | cut -d. -f2`
part2=`echo $f | cut -d. -f3`
site=$part1.$part2
echo "**************************************************************"
echo "updating AWstats for website $site"
/usr/lib/cgi-bin/awstats.pl -config=$site -update
fi;
done

Save and rename this script to "awstats.sh" under your home directory ; and run it like this:

# source awstats.sh example.com

=> and it will update the awstats for the 'example.com' website only.

If you want to process all sites, then just run it without parameters

MD

Topic locked