巧用Cygwin处理海量日志文件(下)
2014-01-22
1445
0
用这篇博文详细的介绍下语法的用法。
一个标准的日志文件中有以下一些属性:
(1) 日期(date)
(2) 时间(time)
(3) 客户端IP地址(c-ip)
(4) 用户名(cs-username)
(5) 方法(cs-method)
(6) URI资源(cs-uri-stem)
(7) URI查询(cs-uri-query)
(8) 协议状态(sc-status)
(9) 发送的字节数(sc-bytes)
(10) 协议版本(cs-version)
(11) 用户代理(csUser-Agent)
(12) 引用站点(csReferer)
现在SEO越来越受到企业的重视,通常情况下也会将关键字字段添加到日志文件中,方便技术人员更好的获取信息加以分析。
下面来介绍一下常用的语句,方便大家日常工作.P.S. linux 是区分大小写的,操作时注意大小写。
awk '{print $11}' filename.log| sort >keywords.log 提取并输出filename中第12个字段的信息排序并保存到keywords.log中。
grep 'Baiduspider' filename.log >baiduspider.log 提取百度相关数据。
awk '($9 ~/200/)' baiduspider.log | awk '{print $9,$7}' | sort >baidu-200.log 提取百度蛛蛛访问产生的所有状态码和数量,并按降序排列。
grep ' 200 ' baiduspider.log | awk '{print $7}' | sort | uniq -c | sort -nr | head -n 1000 >baidu200.log 提取百度蛛蛛访问产生的200状态码的URL去重并计数, 倒叙排列,并显示前1000条并输出到baidu200.log文件中。
一般的日志拆分都可以按照这样的语句执行.如果想要分其他纬度分析,可以替换字段再执行语句,这样可以生成各种纬度的拆分日志,增加工作的效率。