Linux小技巧之:两种方法统计访问web网站的前10个IP


 获得访问前10位的IP地址:

[root@manage:~]# cat /var/log/nginx/access.log | awk '{print $1}'|sort|uniq -c | sort -nr | head -10
  10299 10.46.170.7
      4 218.202.70.147
      1 77.72.83.87
      1 5.39.217.107
      1 185.197.74.234
      1 185.197.74.231

 第二种方法:

[root@ELK-chaofeng ~]#cat /var/log/httpd/access_log | awk '{IP[$1]++}END {for (i in IP){ if (IP[i]>=5) {print IP[i],i}}}' | sort -n
5 1.197.190.113
5 80.82.70.187
6 59.36.132.144
8 176.32.33.80
9 124.90.55.182
10 39.98.206.21
64 222.88.236.174

这个例子是我加上了if判断,只有连接数大于5的时候,才会被执行

此外还有一点需要注意:sort中有个-n参数表示以数字进行排序,默认是以每行的第一字段的数值来进行排序的。

也可以格式化显示的整齐一点:

[root@ELK-chaofeng ~]#cat /var/log/httpd/access_log | awk -F' ' '{IP[$1]++}END{for (i in IP) {if (IP[i] >= 5){printf "%-5d  %-15s\n",IP[i],i}}}' | sort -rn
136    182.117.204.113
64     222.88.236.174
10     39.98.206.21
9      124.90.55.182
8      176.32.33.80
6      80.82.70.187
6      59.36.132.144
5      1.197.190.113

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM