专业IT科技资讯平台,关注科技、手机、电脑、智能硬件、电脑知识!
当前位置:主页 > 建站 > 技术分享 >

shell进行SEO日志分析

导读:

  widows下搭建unix环境,能够在windows下处理基本的shell指令,实现对网站日志灵活细分的需求,获取

  widows下搭建unix环境,能够在windows下处理基本的shell指令,实现对网站日志灵活细分的需求,获取相对精准的SEO数据。

  使用Cygwin实现shell处理环境,Cygwin下载地址:http://www.cygwin.cn/site/install/

  Cygwin安装视频过程,参阅http://www.itseo.net/freevideo/show-113.html,仅需安装满足SEO需求的项目即可,全部安装耗费时间很长(下了8G还在跑,囧)。安装包参考如下:

  curl、lynx、python、base、shells

  扩展阅读:cygwin安装、windows下安装cygwin及配置

  shell基本指令(实现光年日志拆分功能)

  shell指令参考:http://www.linuxso.com/command/

  cd–确定网站日志所在文件夹

  cd /cygdrive/d/weblog/

  ls–显示当前文件夹中的所有文件

  cat–打开文件&连接文件

  cat bj.log

  grep–提取文件的数据

  grep Baiduspider bj.log >bj_baidu.log

  grep命令参数:http://blog.chinaunix.net/uid-20544356-id-132341.html

  常用grep参数:

  -i 忽略大小写

  -l 只显示匹配到的文件名

  -n 显示行号

  -o 只显示匹配的字符

  -r 递归查询

  -v 只显示不匹配的行

  awk–分割数据

  awk ‘{print $8,$12}’ bj_baidu.log >bj_baidu_url.log

  awk ‘{if($10~”404″)print $8,$12}’ bj_baidu.log >bj_baidu_404.log

  awk命令学习参考:

  http://www.cnblogs.com/chengmo/archive/2013/01/17/2865479.html

  http://blog.csdn.net/jihen/article/details/5957304

  sort–排序

  参考:sort命令参数及其用法详解

  uniq–数据汇总

  shell组合:

  1.提取百度蛛蛛访问产生的所有状态码和数量,并按降序排列

  awk ‘{print $10}’ baidu.log |sort|uniq -c|sort -nr |awk ‘{print $2 “\t” $1}’ >baiduma.log

  2.提取所有404、301、302等非正常状态码的页面并按降序排列

  awk ‘{if($10~”404″)print $8,$10}’ baidu.log|sort >baiduma.log

  3.返回状态码为”X”最多的前TOP10二级目录

  cat baidu.log|awk ‘{if($10~”404″)print $8,$6}’ |awk -F”\/” ‘{print $2}’|sort|uniq -c|sort -nr|head -n10

  4.计算abc目录在返回状态为“X”时被百度抓取多少次

  cat baidu.log|awk ‘{if($10~”404″)print $8,$6}’ |awk -F”\/” ‘{if($2~”zufang”)print $0}’|wc -l

  5.判断状态码为“X”时abc目录的层级为多少

  cat baidu.log|awk ‘{if($10~”404″)print $8,$6}’ |awk -F”\/” ‘{if($2~”zufang”&&$3 == “”)print $0}’|wc -l

  6.提取返回出错目录的层级前500条,并降序排列

  cat baidu.log |awk ‘{if($810~ “404″)print $8,$6}’|awk -F”\/” ‘{if($2~”zufang” && $4)print $0}’|sort|head -n500

  7.统计URL抓取次数,并降序排列

  cat baidu.log|awk ‘{print $8}’|sort|uniq -c|sort -nr >paixu.log

  8.有多少IP访问

  awk ‘{print $1}’ baidu.log|sort|uniq|wc –l

  9.查看某页面访问次数

  grep “/abc/” baidu.log|wc -l

  10.每个IP访问次数

  cat baidu.log | awk ‘{print $1}’ | sort | uniq -c | sort -k1r

  11.某IP访问的页面

  grep ‘***.***.***.***’ baidu.log|awk ‘{print $1,$8}’

  12.查看所有页面的访问次数,降序排列

  cat baidu.log|awk ‘{print $8}’|sort|uniq -c|sort -nr

  13.查看记录个数

  awk ‘END{print NR}’ baidu.log

  14.抓取SERP TOP10的URL

  curl -s http://www.baidu.com/s?wd=keywords|grep -o “http://www.baidu.com/link?[^\"|\']*”|xargs curl -s|grep -o “http://[^\"]*”

  15.删除重复行

  awk ‘!a[$0]++’ filename

  16.分词格式处理

  戴尔/nr 贝乐/nr

  戴尔/nr 国际/n 英语/nz 名师/n

  戴尔/nr 国际/n 英语/nz 少儿/n 班/n pre-primary/en 课程/n 及/c 级别/n 介绍/v

  戴尔/nr 英语/nz 公主坟/ns

  戴氏/nr 教育/vn vip/en 多少/r 钱/n

  戴伟/nr 英语口语/n

  丹/nr 丹/nr 人文/n 英语/nz

  丹东/ns 咖啡/n 培训学校/n

  丹东/ns 哪儿/r 有/v 函授/vn 学前教育/l 本科/n 的/uj

  丹东/ns 哪家/r 健身房/n 有/v 有氧操/n 课程/n

  丹东/ns 那/r 有/v 陪/v 讯/ng

  丹东/ns 培训机构/n

  丹东/ns 培训中心/n

  丹东市/ns 培训学校/n

  ……

  $ expand keywords.txt|tr -s ‘ ‘ ‘\n’|grep -v “^$”

  输出结果:

  戴尔/nr

  贝乐/nr

  戴尔/nr

  国际/n

  英语/nz

  名师/n

  戴尔/nr

  国际/n

  英语/nz

  少儿/n

  班/n

  pre-primary/en

  课程/n

  及/c

  级别/n

  介绍/v

  戴尔/nr

  英语/nz

  公主坟/ns

  戴氏/nr

  教育/vn

  vip/en

  多少/r

  钱/n

  戴伟/nr

  英语口语/n

  丹/nr

  丹/nr

  人文/n

  英语/nz

  丹东/ns

  咖啡/n

  培训学校/n

  丹东/ns

  哪儿/r

  有/v

  函授/vn

  学前教育/l

  本科/n

  的/uj

  丹东/ns

  哪家/r

  健身房/n

  有/v

  有氧操/n

  课程/n

  丹东/ns

  那/r

  有/v

  陪/v

  讯/ng

  丹东/ns

  培训机构/n

  丹东/ns

  培训中心/n

  丹东市/ns

  培训学校/n