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 晴 于 北京