三、 日志合并(在Awstats服务器上进行):
由于用ftp取得的日志文件有多个(本案是2个),不便于处理,因此很有必要对日志进行解压和合并。处理使用下面的脚本来完成:
#!/bin/bash
#define variables
AwsLogDir=/root/logs/Awstats_log
Web1Log=/root/logs/web1
Web1OrigLog=$Web1Log/sery.com-access$(date +%Y%m%d --date='1 days ago').log.gz
Web2Log=/root/logs/web2
Web2OrigLog=$Web1Log/sery.com-access$(date +%Y%m%d --date='1 days ago').log.gz
OldFile=/root/logs/Awstats_logs/sery.com-access$(date +%Y%m%d --date='4 days ago').log*
#########################################################################
#get logfiles
cd $Web1Log
if [[ -f $Web1OrigLog ]]
then
gunzip -d $Web1OrigLog
fi
FileLog1=sery.com-access$(date +%Y%m%d --date='1 days ago').log
if [[ -f $FileLog1 ]]
then
mv sery.com-access$(date +%Y%m%d --date='1 days ago').log $AwsLogDir/17k.com-access$(date +%Y%m%d --date='1 days ago').log.1
fi
cd $Web2Log
if [[ -f $Web2OrigLog ]]
then
gunzip -d $Web2OrigLog
fi
FileLog2=sery.com-access$(date +%Y%m%d --date='1 days ago').log
if [[ -f $FileLog2 ]]
then
mv sery.com-access$(date +%Y%m%d --date='1 days ago').log $AwsLogDir/sery.com-access$(date +%Y%m%d --date='1 days ago').log.2
fi
#########################################################################
# conbine two web logs to one
cd $AwsLogDir
File1Log=sery.com-access$(date +%Y%m%d --date='1 days ago').log.1
File2Log=sery.com-access$(date +%Y%m%d --date='1 days ago').log.2
if [[ -f $File1Log && -f $File2Log ]]
then
cat $File1Log $File2Log >sery.com-access.log
fi
if [[ -f $OldFile ]]
then
rm $OldFile
fi
上述脚本正常运行后,将在/root/logs/Awstats目录生成文件sery.com-access.log,这个文件正是Awstats所需要的。如果从更多Apache服务器取来更多日志文件,上述脚本需要更改才能简洁高效。方法是-用循环方式生成那个sery.com-access.log文件。