web访问日志分析

Posted by 机器人 on 18th 一月 2010 in linux/server

语句:

cat access.log  | awk '{print $1}' | sort -n | awk '{S[$NF]++} END
 {for(a in S) {print a"\t" S[a]}}' | sort +1 -2nr


描述

1. cat access.log
将访问日志cat出来

203.208.60.214 - - [18/Jan/2010:17:00:38 +0800] "GET /tieba?w=%E5%B9%BF%E5%B7%9E%E8%87%B3%E5%8C%97%E4%BA%AC%E4%B8%93%E7%BA%BF&companyName=%E4%B8%9C%E8%8E%9E%E5%B8%82%E7%BA%A2%E6%88%BF%E5%AD%90%E6%9C%8D%E9%A5%B0%E6%9C%89%E9%99%90%E5%85%AC%E5%8F%B8&url=www.fashionrh.com&lc=51756%2C2&pn=20 HTTP/1.1" 200 4098

2. | awk ‘{print $1}’
通过管道将第一个字段也就是ip地址筛选出来。

202.160.180.155
127.0.0.1
202.160.180.155

3. | sort -n
将ip地址进行排序
4. awk ‘{S[$NF]++} END{for(a in S) {print a”\t” S[a]}}
$NF是awk里的一个变量,代表最后一个字段的内容,由于这晨只有一个字段,即:IP地址,所以$NF代表IP地址。
S[$NF]++里的S代表一个数组,然后统计IP地址出现的次数. 后面是一个for in 循环语句,将这个数组里的值和键打印出来。

65.55.106.186	6
222.247.53.68	1
65.55.106.187	3
123.150.187.133	1
65.55.106.107	2
65.55.106.108	6
65.55.106.109	4
113.93.129.0	1

5. sort +1 -2nr
以第二个字段,也就是每个IP的访问次数进行排序

95.224.11.161	1034
99.245.97.38	244
99.50.55.124	124

机器人 2010年01月18日 17:04 晴 于 北京

分享到: 新浪微博

Leave a Reply