服务器 频道

网管真经:用Awstats处理多apache日志

三、 日志合并(在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文件。
0
相关文章