linux shell网站日志统计分析程序

以前自己是seo,从事过SEO的朋友会了解到,网站日志(web log)对一个网站的重要性。虽然网上的免费分析日志的软件非常多,但是细心的朋友会发现,
每一个软件对数据的统计分析都不一样,我们以什么为标准?我认为最好的工具应该是自己开发的,因为自己开发的工具更加能够符合我们的使用标准。
下面这个脚本是linux shell编写的,用来统计百度蜘蛛和谷歌蜘蛛对网站的抓取情况。


具体功能

1.百度、蜘蛛蜘蛛对网站的当天总抓取量统计;
2.统计当天被上述两种蜘蛛的重复抓取页面;
3.统计蜘蛛抓取遇到404,301,304,302等数据;
4.对当前日志分析出当日对网站访问最高的IP,可以理解是异常IP访问;
5.栏目抓取量、栏目重复抓取量统计;
6.内容页抓取量、内容页重复抓取量统计;


以下是脚本的全部内容,复制粘贴到一个中,最好使用linux操作系统,直接放到文本中,赋予可执行权限,将要分析的日志和该脚本放到一起。默认不支持多日志文件一起分析,如果有多个文件,
请将他们合并成一个.log文件


#!/bin/bash
#脚本专门统计百度和GOOGLE蜘蛛对网站的抓取情况
#建立两个文件夹放置内容
if [ -d report ] 
then
	rm -rf report && mkdir report
fi
if [ ! -d report ] 
then
	mkdir report
fi
if [ -d ip ] 
then
	rm -rf ip && mkdir ip
fi
if [ ! -d ip ] 
then
	mkdir ip
fi
mkdir report/baidu
mkdir report/google
#创建结束
#头部
echo "****************************************************************************************" >>report/report.txt
echo "作者:lesson-yang" >>report/report.txt
echo "脚本创作时间:2012-11-26" >>report/report.txt
#获取日志日期
log_date=`cat *.log|head -n1|awk '{print $4}'|awk -F[[] '{print $2}'|awk -F[:] '{print $1}'`
echo "日志日期:$log_date" >>report/report.txt
echo "本脚本用来统计baiduspider与googlebot对网站的抓取情况,以便于更好的优化网站" >>report/report.txt
echo -ne "作者联系方式 qq:945771434" >>report/report.txt
echo "作者网站: http://www.seolang.com" >>report/report.txt
echo "****************************************************************************************" >>report/report.txt
#开始分析百度蜘蛛
echo "百度蜘蛛对网站的抓取情况如下:" >>report/report.txt
#创建一个临时文件,用以存放百度log
grep "Baiduspider" *.log >>Baidu.log
#创建一个临时文件,用以存放临时ip
awk '{print $1}' Baidu.log|sort|uniq -c|awk '{print $2}'|grep -v "^$" >>ip.txt
echo "正在统计百度蜘蛛IP,请耐心等待……"
#创建一个文件,存放IP
nslookup <ip.txt|grep "baiduspider"|awk -F[-] '{print $2"."$3"."$4"."$5}'|awk  -F[.] '{print $1"."$2"."$3"."$4}'|grep -v "^$"|sort -nr >>bdspiderip.txt
echo "统计百度蜘蛛IP完成,进入下一个项目……"
ipset=`awk '{print $1}' bdspiderip.txt`
grep "$ipset" Baidu.log >>report/baidu/baidu.log
#分析百度总抓取量概述
echo "正在统计百度蜘蛛对网站的总抓取量、404等项目,可能会花费较长时间,请耐心等待……"
echo -ne "百度蜘蛛总抓取量:" >>report/report.txt
cat report/baidu/baidu.log|wc -l >>report/report.txt
echo "--------------------------------------------" >>report/report.txt
echo -ne "重复抓取量:" >>report/report.txt
cat report/baidu/baidu.log|sort|uniq -d >>report/report.txt
echo -ne "其中404:" >> report/report.txt
awk '{if($9==404)print}' report/baidu/baidu.log|wc -l >>report/report.txt
echo -ne "其中301:" >> report/report.txt
awk '{if($9==301)print}' report/baidu/baidu.log|wc -l >>report/report.txt
echo -ne "其中304:" >> report/report.txt
awk '{if($9==304)print}' report/baidu/baidu.log|wc -l >>report/report.txt
echo -ne "其中302:" >> report/report.txt
awk '{if($9==302)print}' report/baidu/baidu.log|wc -l >>report/report.txt
echo -ne "其中503:" >> report/report.txt
awk '{if($9==503)print}' report/baidu/baidu.log|wc -l >>report/report.txt
echo "------------------------------------------------------------------" >>report/report.txt
echo "统计百度蜘蛛抓取概括情况完成,进入下一个项目……"
echo "正在统计百度蜘蛛对网站的栏目和内容页抓取量,可能会花费较长时间,请耐心等待……"
echo -ne "现在开始分析首页抓取次数:" >>report/report.txt
awk '{print $7}' report/baidu/baidu.log|grep "^/$"|wc -l >>report/report.txt
echo "正在统计百度蜘蛛对网站的栏目抓取量……"
echo "现在开始分析栏目抓取" >>report/report.txt
echo -ne "栏目总抓取量:" >>report/report.txt
awk '{print $7}' report/baidu/baidu.log|grep -v "^/$"|grep "/$" |wc -l >>report/report.txt
awk '{print $7}' report/baidu/baidu.log|grep -v "^/$"|grep "/$"|sort|uniq -c|sort -nr|awk '{print $1"\t"$2}' >>report/report.txt
content=`awk '{print $7}' report/baidu/baidu.log|grep "[0-9].html$"|sort|uniq -c|sort -nr|awk '{print $2}'`
dirstr=`awk '{print $7}' report/baidu/baidu.log|grep "/$"|sort|uniq -c|sort -nr|awk '{print $2}'`
echo "详细的各个栏目的抓取情况请到:baidu/baidupsider栏目抓取记录.log 文件里查看" >>report/report.txt
grep "$dirstr" report/baidu/baidu.log |grep -v "$content"|awk '{if($7!="/")print}'|grep "/ HTTP/" >>report/baidu/baidupsider栏目抓取记录.log
echo "百度蜘蛛栏目抓取量统计完成,进入下一个项目……"
echo "正在统计百度蜘蛛对网站的内容页抓取量,请耐心等待……"
#统计内容页抓取
echo -ne "内容页总抓取量:" >>report/report.txt
awk '{print $7}' report/baidu/baidu.log|grep "[0-9].html$"|wc -l >>report/report.txt
echo "baidupsider内容页抓取详情请到:baidu/baidupsider内容页抓取记录.log 里查看" >>report/report.txt
grep "$content" report/baidu/baidu.log >>report/baidu/baidupsider内容页抓取记录.log
echo "百度蜘蛛内容页抓取量统计完成,进入下一个项目……"
echo "百度蜘蛛抓取最多的页面是:[前10名]" >>report/report.txt
awk '{print $7}' report/baidu/baidu.log|sort|uniq -c|sort -nr|head -n10 >>report/report.txt
rm -rf Baidu.log
rm -rf ip.txt
echo "百度蜘蛛统计完成" >>report/report.txt
echo "googlebot统计开始*************************************************************" >>report/report.txt
#开始分析googlebot
echo "googlebot对网站的抓取情况如下:" >>report/report.txt
#创建一个临时文件,用以存放百度log
grep "Googlebot" *.log >>Google.log
echo "正在统计googlebot IP,请耐心等待……"
awk '{print $1}' Google.log|sort|uniq -c|awk '{print $2}'|grep -v "^$" >>ip.txt
nslookup <ip.txt|grep "googlebot"|awk -F[-] '{print $2"."$3"."$4"."$5}'|awk  -F[.] '{print $1"."$2"."$3"."$4}'|sort|uniq -c|awk '{print $2}'|grep -v "^$" >>googlebotip.txt
echo "统计googlebot IP完成,进入下一个项目……"
gogleip=`awk '{print $1}' googlebotip.txt`
grep "$googleip" Google.log >>report/google/google.log
#分析googlebot总抓取量概述
echo "正在统计googlebot对网站的总抓取量、404等项目,可能会花费较长时间,请耐心等待……"
echo -ne "googlebot总抓取量:" >>report/report.txt
cat report/google/google.log|wc -l >>report/report.txt
echo "--------------------------------------------" >>report/report.txt
echo -ne "重复抓取量:" >>report/report.txt
cat report/google/google.log|sort|uniq -d >>report/report.txt
echo -ne "其中404:" >> report/report.txt
awk '{if($9==404)print}' report/google/google.log|wc -l >>report/report.txt
echo -ne "其中301:" >> report/report.txt
awk '{if($9==301)print}' report/google/google.log|wc -l >>report/report.txt
echo -ne "其中304:" >> report/report.txt
awk '{if($9==304)print}' report/google/google.log|wc -l >>report/report.txt
echo -ne "其中302:" >> report/report.txt
awk '{if($9==302)print}' report/google/google.log|wc -l >>report/report.txt
echo -ne "其中503:" >> report/report.txt
awk '{if($9==503)print}' report/google/google.log|wc -l >>report/report.txt
echo "------------------------------------------------------------------" >>report/report.txt
echo "统计googlebot抓取概括情况完成,进入下一个项目……"
echo "正在统计googlebot对网站的栏目和内容页抓取量,可能会花费较长时间,请耐心等待……"
echo -ne "现在开始分析首页抓取次数:" >>report/report.txt
awk '{print $7}' report/google/google.log|grep "^/$"|wc -l >>report/report.txt
echo "正在统计googlebot对网站的栏目抓取量……"
echo "现在开始分析栏目抓取" >>report/report.txt
echo -ne "栏目总抓取量:" >>report/report.txt
awk '{print $7}' report/google/google.log|grep -v "^/$"|grep "/$" |wc -l >>report/report.txt
awk '{print $7}' report/google/google.log|grep -v "^/$"|grep "/$"|sort|uniq -c|sort -nr|awk '{print $1"\t"$2}' >>report/report.txt
content=`awk '{print $7}' report/google/google.log|grep "[0-9].html$"|sort|uniq -c|sort -nr|awk '{print $2}'`
dirstr=`awk '{print $7}' report/google/google.log|grep "/$"|sort|uniq -c|sort -nr|awk '{print $2}'`
echo "详细的各个栏目的抓取情况请到:google/googlebot栏目抓取记录.log 文件里查看" >>report/report.txt
grep "$dirstr" report/google/google.log |grep -v "$content"|awk '{if($7!="/")print}'|grep "/ HTTP/" >>report/google/googlebot栏目抓取记录.log
echo "googlebot栏目抓取量统计完成,进入下一个项目……"
echo "正在统计googlebot对网站的内容页抓取量,请耐心等待……"
#统计内容页抓取
echo -ne "内容页总抓取量:" >>report/report.txt
awk '{print $7}' report/google/google.log|grep "[0-9].html$"|wc -l >>report/report.txt
echo "googlebot内容页抓取详情请到:google/googlebot内容页抓取记录.log 里查看" >>report/report.txt
grep "$content" report/google/google.log >>report/google/googlebot内容页抓取记录.log
echo "googlebot内容页抓取量统计完成"
echo "google蜘蛛抓取最多的页面是[前10名]:" >>report/report.txt
awk '{print $7}' report/google/google.log|sort|uniq -c|sort -nr|head -n10 >>report/report.txt
echo "**************************************************************************************" >>report/report.txt
echo "正在统计网站异常访问IP,请耐心等待……"
echo "防采集分析项" >>report/report.txt
echo "以下列出 $log_date 这一天对网站访问次数最多的ip记录,提取前10名" >>report/report.txt
echo "如果某个非正常蜘蛛的IP访问网站过于频率,请考虑其是否正在采集您的网页内容" >>report/report.txt
awk '{print $1}' *.log|sort|uniq -c|sort -nr|head -n10 >>report/report.txt
echo "统计完成" >>report/report.txt
echo "现在将存放百度蜘蛛和google蜘蛛的ip的文件移动到ip文件夹下,您可以将它们保存,对于研究蜘蛛很有用处" >>report/report.txt
mv googlebotip.txt ip
mv bdspiderip.txt ip
rm -rf ip.txt
rm -rf Google.log
rm -rf googlebotip.txt
rm -rf bdspiderip.txt
echo "敬告:如果您通过运行该脚本无任何报告生成,很可能您的日志和作者的日志不一样,请联系作者" >>report/report.txt

 




效果图预览

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值