如何统计nginx日志下访问量最多的IP,并做排序

 

[root@web logs]# cat access.log  | awk -F   '{print $1}' |sort |uniq -c |sort -rn      79 xxx.23.132.13       4 113.xx.1xx.111       3 11x.136.xxx.131       2 18x.1xx.220.xx       1 2x6.2xx.206.xx [root@web logs]# cat access.log  | awk -F   '{print $1}' |sort |uniq -c |sort -rn |head -n 2      79 xxx.23.132.13       4 113.xx.xxx.111 [root@web logs]# cat access.log  | awk -F   '{print $1}' |sort |uniq -c |sort -rn |head -n 2 |less

 

 解释:uniq的一个特性,检查重复行的时候,只会检查相邻的行。重复数据,肯定有很多不是相邻在一起的;所以需要先进行排序,然后进行统计,再进行逆向排序。

参数解读:

sort:

  -r:逆序输出排序结果

  -n:根据字符串数值比较

uniq:从输入文件或者标准输入中筛选相邻的匹配行并写入到输出文件或标准输出。

  -c:在每行前加上表示相应行目出现次数的前缀编号