Categorized | SEO, 数据分析

蜘蛛日志一键分析整理脚本,工具为Cygwin

发布于 2013年03月20日 更新于 2013年12月23日 

此代码为自用log一键分析日志脚本,使用工具为Cygwin,各位可参照修改其中参数。

使用方法很简单:直接复制到Cygwin,回车执行,总体运行效率还是可以的,各个要素都有数据文件输出。
———一键代码 日志拆分by simon ——

更新日志:

3月18日:添加排除特征库代码(考虑到某些日志文件里会有很多干扰数据的原因)

1月5日:建立版本V1.0

—日志先清理##字符串,全部替换为空,用sed替换掉,代码如下

cat *>rz.log
sed -e ‘s/##/ /g;s/ 115.238.101.227//g;s/ 112.25.11.14,//g’ rz.log >rzql.log
[说明]:-e代表多个规则,s/X1/X2/g中为语法,X1为替换前字符串,X2为替换后,多个规则用;代替。

[我的log标准日志格式为,可自定义]:
123.125.71.77 – – [25/Dec/2013:00:01:17 +0800] “GET /URL HTTP/1.0” /database/webroot/showthread.php 200 11057 “-” “Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)” 172.17.1.101

特征库:(排除监控代码、局域网IP、服务器IP等)
– – – \[(.*?).*
.*jiance.php .*
42.121.107.149
112.25.11.14,
115.238.101.227
101.226.4.1.,
123.126.50.183,
123.151.42.48
172.17.1… #服务器局域网的IP范围匹配#

—————————开始———————————————


cat * | grep Baiduspider/ | sed -e 's/ 42.121.107.149//g;s/##/ /g;'>baidu.log
cat * | grep Googlebot/ | sed -e 's/ 42.121.107.149//g;s/##/ /g;'>google.log
export LC_ALL=C
mkdir baidu
awk '{print $10}' baidu.log |sort|uniq -c|sort -nr |awk '{print $2 "\t" $1}' >baidu/baiduma.log
awk '($10 ~/200/)' baidu.log | awk '{print $10,$7}' | sort >baidu/baidu200.log
awk '($10 ~/404/)' baidu.log | awk '{print $10,$7}' | sort >baidu/baidu404.log
awk '($10 ~/301/)' baidu.log | awk '{print $10,$7}' | sort >baidu/baidu301.log
awk '($10 ~/302/)' baidu.log | awk '{print $10,$7}' | sort >baidu/baidu302.log
awk '($10 ~/500/)' baidu.log | awk '{print $10,$7}' | sort >baidu/baidu500.log
awk '($10 ~/503/)' baidu.log | awk '{print $10,$7}' | sort >baidu/baidu503.log
awk '($10 ~/504/)' baidu.log | awk '{print $10,$7}' | sort >baidu/baidu504.log
grep ' 200 ' baidu.log | awk '{print $7}' | sort | uniq -c | sort -nr | head -n 100 >baidu/baidu200n.log
awk '{print $7}' baidu.log | awk -F '[^/(a-zA-Z)/$]' '$1=$1' | awk '{print $1}' |sort|uniq -c|sort -nr|head -100 >baidu/baidumulu.log
cat baidu.log | grep Baiduspider/ |awk '{print $7}'|sort |uniq -c >baidu/baiduspiderurl.txt
mkdir google
awk '{print $10}' google.log |sort|uniq -c|sort -nr |awk '{print $2 "\t" $1}' >google/googlema.log
awk '($10 ~/200/)' google.log | awk '{print $10,$7}' | sort >google/google200.log
awk '($10 ~/404/)' google.log | awk '{print $10,$7}' | sort >google/google404.log
awk '($10 ~/301/)' google.log | awk '{print $10,$7}' | sort >google/google301.log
awk '($10 ~/302/)' google.log | awk '{print $10,$7}' | sort >google/google302.log
awk '($10 ~/500/)' google.log | awk '{print $10,$7}' | sort >google/google500.log
awk '($10 ~/503/)' google.log | awk '{print $10,$7}' | sort >google/google503.log
awk '($10 ~/504/)' google.log | awk '{print $10,$7}' | sort >google/google504.log
grep ' 200 ' google.log | awk '{print $7}' | sort | uniq -c | sort -nr | head -n 100 >google/google200n.log
awk '{print $7}' google.log | awk -F '[^/(a-zA-Z)/$]' '$1=$1' | awk '{print $1}' |sort|uniq -c|sort -nr|head -100 >google/googlemulu.log
cat google.log | grep Googlebot/ |awk '{print $7}'|sort |uniq -c >google/googlespiderurl.txt
mkdir perhour
cd perhour
mkdir baidu
mkdir google
cd ../

for((i=0;i<=23;i++))
do
if((i<10))
then
grep -c '13:0'$i:..:.. baidu.log >perhour/baidu/$i.txt
grep -c '13:0'$i:..:.. google.log >perhour/google/$i.txt
else
grep -c '13:'$i:..:.. baidu.log >perhour/baidu/$i.txt
grep -c '13:'$i:..:.. google.log >perhour/google/$i.txt
fi
done
cat perhour/baidu/* >baidu/bdhuizong.log
cat perhour/google/* >google/gghuizong.log
rm -r perhour

———————结束——————————

文件说明:
rzql.log为日志清理后文件
baiduma.log 百度抓取状态码
googlema.log 谷歌抓取状态码
baidu404.log 百度404
baidu200n.log 提取百度蜘蛛访问码为200的前100个页面及访问次数,并按降序排列
baidumulu.log 提取百度蜘蛛访问数量前100的网站目录及访问次数,并按降序排列
baiduspiderurl.txt 把蜘蛛抓取的不重复URL导出来
bdhuizong.log 为百度分时段统计抓取量
gghuizong.log 为google分时段统计抓取量
其它依次类推。。。

看了此文的人貌似还看了这些:

  • 【招聘】南京地区+seo及外链专员 2012-05-05
  • URL中过多的参数是否会将google蜘蛛带入抓取死循环? 2012-09-18
  • dedecms三级栏目SEO标题设置问题 2012-06-29
  • 百度六七月份算法已升级,SEO该如何应对相应策略? 2012-07-06
  • [已招到]招聘SEO,坐标南京 2017-10-10
  • 《改善收录篇》:面向搜索引擎的索引页链接补全机制 2012-08-15
  • dedecms优化中常用的一些函数汇总 2012-06-16
  • 什么是nofollow属性?nofollow有什么作用? 2012-10-14
  • SEO中的canonical标签如何使用? 2012-06-22
  • SEO乱象之《SEO新手入门》 2012-07-07
  • 9 Comments For This Post

    1. 净水器 Says:

      哈 过来看看 有没有更新好的文章!

    2. 红酒 Says:

      出大事了,因为我又看不懂这群代码了。

    3. 净水器 Says:

      非常不错的博客·

    4. 机关文化 Says:

      那么复杂,呵

    5. 净水器 Says:

      过来看看有没有更新~

    6. 净水器 Says:

      过来打下酱油~文章更新慢了点吧

    7. shelocke Says:

      我也写了,你这个还有很大的提升空间,

    8. simon Says:

      亲,可以分享一下哦

    9. englishelc Says:

      这个整理得好清晰啊 不过有些看得不太懂哦

    发表评论

    Time limit is exhausted. Please reload CAPTCHA.

       我相信你,不会发广告!

    斗牛SEO工具