log analytics

11
日日日日日日 日日日 SEO 日日日日 Cygwin 日日日 Linux 日日日日日日日日日 grep 日日日日 AWK 日日日日日 A&G 日日日日 日日日日日日 AWK 日日 日日日日日日日日 日日日日 SEO 日日

Upload: itseo

Post on 14-Jun-2015

936 views

Category:

Documents


7 download

TRANSCRIPT

Page 1: Log analytics

日志分析方法 日志在 SEO 中的作用 Cygwin 的安装 Linux 下日志分析基本命令 grep 过滤方法 AWK 的基本用法 A&G 组合过滤 全站日志分析 AWK 脚本 频道细节日志分析 日志分析 SEO 扩展

Page 2: Log analytics

日志在 SEO 中的作用

监控蜘蛛的抓取数量 监控状态码的异常 监控重复的抓取率 监控蜘蛛的载入耗时 持续监控 , 持续改善 . 提高有效抓取 , 推动收录 . 日志数据间接指导 , 提升效果 , 微调微

调 .

Page 3: Log analytics

Cygwin 安装下载 http://cygwin.com/setup.exe

安装教程 http://wenku.baidu.com/view/45a0ea21ccbff121dd36830e.html

检查 awk 及 grep 版本 确保安装正确 awk –V grep –V

Page 4: Log analytics

Linux 下日志分析基本命令常用 Linux 命令锦集

文件操作:rm go.tar        /* 删除 go.tar 文件 */find mt.cgi    /* 查找文件名为 mt.cgi 的文件 */

详情请看以下链接

http://www.vpser.net/build/linux-vps-ssh-command.html

日志分析常用命令• ls // 列出当前目录所有文件• cd // 打开目录• cd .. // 返回上级目录• cd /e/log // 打开具体路径• mkdir // 建立目录• mkdir log // 建立 log 目录

Page 5: Log analytics

grep 过滤方法 命令详解

grep ‘Baiduspider+’  log.log >baidu.log  

匹配日志包含Baiduspider+ 所有的行

要过滤的日志文件 重定向命令 > 输出

输出文件名 baidu.log

组合过滤 egrep "Baiduspider+|Googlebot" example.log >spider.txt

匹配日志包含Baiduspider+ 及Googlebot 所有的行并用 管道 链接 |

要过滤的日志文件 重定向命令 > 输出

输出文件名 spider.txt

Page 6: Log analytics

AWK 的基本用法

AWK 是以特定分隔符来定义字段区位如图: 220.181.7.61 是字段区位第一位 用 $1 表示 awk 在 linux 下一般以空格为分隔符 - 即空格分割后也为一个字段区位,如图为 $3 $4 $11

基本用法 awk '{print $1}' log.log >s1.log

'{print $1}' 打印所有字段区位 1 的行‘{print $1,$6,$7}’ 打印 1 6 7 字段区位

Page 7: Log analytics

AWK 的基本用法 - 区位匹配过滤 awk 脚本是由模式和操作组成的 如 $ awk '/root/' test ,或 $ awk '$3 < 100' test

匹配操作符 (~) 用来在记录或者域内匹配正则表达式 如 $ awk '$1 ~/^root/' test 将显示 test 文件第一列中以 root 开头的行。

EXP:awk ‘($13 ~ /302/)’log.log // 如果 13 位是状态码,那么就过滤 13 位所有 302 的

同样的方法可以获得 404 500 503 的状态码行数 .

利用管道可以获得更多的参数

awk ‘($13 ~ /302/)’log.log | awk '{print $2,$5,$6,$10,$12}' >xxx.txt

先过滤 302 所有的行 然后利用管道 | 去执行下一个命令输出跟多的参数至 xxx.txt

Page 8: Log analytics

A&G 组合过滤 获得百度蜘蛛返回 404 的行

1. 先过滤百度蜘蛛 grep ‘Baiduspider’ log.log2. 匹配所有 404 的行 . awk ‘($13 ~ /302/)’3. 获得更多的参考参数 awk '{print $2,$5,$6,$10,$12}‘4. 输出文件 >Baiduspider404.log

组合命令 - 利用管道 | 连接

grep ‘Baiduspider’ log.log | awk ‘($13 ~ /302/)’ | awk '{print$2,$5,$6,$10,$12}‘ >Baiduspider404.log

Exp

获取百度蜘蛛 500 grep ‘Baiduspider’ log.log | awk ‘($13 ~ /500/)’ | awk '{print$2,$5,$6,$10,$12}‘ >Baiduspider404.log

获取谷歌蜘蛛 302 grep ‘Googlebot’ log.log | awk ‘($13 ~ /302/)’ | awk '{print$2,$5,$6,$10,$12}‘ >Googlebot404.log

获取百度和谷歌蜘蛛 500 egrep ‘Baiduspider|Googlebot’ log.log | awk ‘($13 ~ /500/)’ | awk '{print$2,$5,$6,$10,$12}‘ >BG404.log

Page 9: Log analytics

全站日志分析 AWK 脚本 Spider.awk 区位修改

把 spider.awk 放到日志目录下

找出 URL 及状态码位置 URL 动态的情况

修改区位

全站日志分析awk –f spider.awk xx.log >xx.txt

Cygwin 里执行命令awk -f spider.awk ex120607.log >0607.txt

获得结果填表入库

Page 10: Log analytics

频道细节日志分析 过滤频道特诊 URL如目录 $ grep '\/news\/' ex120607.log | awk -f spider.awk

grep ‘\/news\/’ // 正则匹配 news 目录

管道 | // 给 spider.awk 分析

awk –f spider.awk // 执行拆分

grep ‘xxoo’ xxx.log |awk –f spider.awk

利用好 grep 正则匹配,也可用 awk 的正则区位匹配 来获取目录或则特征 URL 的抓取情况

获得数据结果填入 excel

对比数据 , 持续监控并改善 .

Page 11: Log analytics

日志分析 SEO 扩展某个蜘蛛的载入耗时grep Baiduspider log.log | awk '{sum+=$NF} END {print " 平均下载耗时 =", sum/NR}'

数据与报表监控日期 , 状态码 , 重复抓取 ,SEO 项目记录