linux下seo日志分析脚本

网上找到的一个不错的进行linux服务器SEO日志分析的shell脚本,值得学习。

#!/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 '{print $1}'|awk -F[.] '{print $4"."$3"."$2"."$1}'|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 '{print $1}'|awk -F[.] '{print $4"."$3"."$2"."$1}'|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|awk '{print $1"\t"$2}' >>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
echo "请查看格式示例.txt" >>report/report.txt


无觅相关文章插件,快速提升流量

标签:, ,

实在不堪垃圾评论的骚扰,还是禁止了吧,有事微博联系吧。