网络通信 频道

网站日志处理工具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
相关文章