二、 获取日志文件
是Awstats服务器从Apache服务器取得日志文件,在本案中,我将从2个Apache服务器取得日志文件。取日志也是每天自动进行一次。有一点必须注意,那就是必须要等”第二步”操作正常结束后再进行取日志;回过头去看”第二步”的”/usr/local/bin/merge_log.sh”执行时间在00:05分,考虑执行程序的开销,估计 1小时左右可以完成这个操作,所以在凌晨2点去取文件是合时的。下面给出取日志的脚本:
#!/bin/bash wget –active-ftp -m –directory-prefix=/root/logs/web1/ –tries=3 –output-file=/root/script/weblog-get.log ftp://sery:heufgewUQc@www1.sery.com/sery*.gz wget –active-ftp -m –directory-prefix=/root/logs/web2/ –tries=3 –output-file=/root/script/weblog-get.log ftp://sery: heufgewUQc@www2.sery.com/sery*.gz |
脚本成功运行后,将把第一个Apache服务器的日志文件放在”/root/logs/web1″目录,第2个Apache服务器的日志文件放在” /root/logs/web2″目录,并且把操作日志记录到文件”/root/script/weblog-get.log”,以方便检查脚本执行的状况。把这个脚本放在目录/usr/local/bin下,命名为weblog-get.sh,赋予执行权限,然后手动运行脚本/usr/local /bin/weblog-get.sh,看是否取得了远程Apache服务器的2个压缩日志文件。正确无误后,把它加在crontab 里。
crontab -e 00 02 * * * /usr/local/bin/weblog-get.sh |
每天凌晨2点,Awstats所在的服务器就会主动从2个远程的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文件。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
在开源控制器上 ONOS和ODL更趋向协作
ONOS和ODL项目在SDN控制器方面很可能会共享成果,这样几乎所有事情都可以在Linux基金会上实现了。
-
观点集:Docker将成主流 新Linux可改良虚拟化管理
在本期博客观点集中,分析师探讨了Docker、行业认证的实际价值以及针对虚拟环境的新Linux项目的作用。
-
网站日志处理工具Awstats:处理多Apache日志(三)
在linux环境下,开源工具Awstats是一个非常受欢迎的网站日志处理工具。在linux环境安装和配置Awstats比较容易成功,但要同时处理多个Apache日志,还是有许多工作需要做的。
-
网站日志处理工具Awstats:处理多Apache日志(一)
在linux环境下,开源工具Awstats是一个非常受欢迎的网站日志处理工具。在linux环境安装和配置Awstats比较容易成功,但要同时处理多个Apache日志,还是有许多工作需要做的。