今天抽时间看了下awk,拿apache练了练手...记录如下
ubuntu默认的/var/log/apache2/access.log下面的是部分日志,方便描述!
202.114.85.105 - - [25/Aug/2008:15:42:31 +0800] "GET / HTTP/1.1" 200 1365 "-" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9b5) Gecko/2008041514 Firefox/3.0b5
$0就是全部,$1就是ip(202.114.85.105),$4就是time了哦([25/Aug/2008:15:42:31 +0800]),类似下推,这个分析清楚了,下面使用awk就好说了
awk '$1 ~ /^202/{print $0}'access.log | wc -l(ps:不加$1 ~默认的是$0,$1//是不对的,还是学习perl的时候,学到的,如不是默认的,匹配的时候要加~,没想到在这里也适用,suprise,有点少见对怪)
这个就是统计以202开头的ip访问的次数.适当用用正则表达式,就可以统计任何ip,或则ip段了,我就不多说了!/^202.114.85.10[0-5]$/
awk '$1 !~ /^202/{print $0}'access.log | wc -l(统计不是以202开头的,前面的!~,注意!加的地方)
awk '$4 ~/^\[25/print{print $0}' access.log | wc -l(访问时间了)
awk '$6 ~/GET/{print $0}' access.log | wc -l(统计get方式的)
ps:awk默认的FS是空格,可以DIY,awk -F[ :\t] ''(修改FS后上面的$n也就变了哦^_^)
分析下,你可以根据操作系统,编码,IE or firefox取得统计信息了哦,我就不一一写了,有需求的跟帖或QQ or Email me^_^
apache log分析对awk来说只是a piece of cake^_^
阅读(1564) | 评论(0) | 转发(0) |