统计nginx访问ip,并按照访问次数进行排序

需求:

统计niginx的访客ip,并排列出访客访问次数,进行排序

nginx访问日志格式

182.96.12.70 - - [17/Jan/2020:02:58:45 +0000] "GET / HTTP/1.1" 502 166 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:64.0) Gecko/20100101 Firefox/64.0"
182.96.12.70 - - [17/Jan/2020:02:58:45 +0000] "GET / HTTP/1.1" 502 166 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:64.0) Gecko/20100101 Firefox/64.0"
182.96.12.70 - - [17/Jan/2020:02:58:45 +0000] "GET / HTTP/1.1" 502 166 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:64.0) Gecko/20100101 Firefox/64.0"

思路:

先提取访客的 ip,awk提取

cat access.log |awk '{print1}'

格式如下:

[root@cloud ~]# cat access.log |awk '{print1}'
223.166.74.72
119.39.46.77
110.167.94.116
71.6.202.253
115.192.187.161
134.119.218.243
184.105.247.196
87.2.28.156
[root@cloud ~]# 

对所展示的ip进行统计操作

[root@cloud ~]# cat access.log |awk '{print1}'|sort|uniq -c
      2 157.55.39.27
      1 159.203.201.155
      8 163.177.13.2
      1 164.68.112.178
      1 171.34.179.184
      1 175.152.111.112
      4 175.184.164.59
     84 182.138.137.127
    158 182.138.158.156
    334 182.138.158.183
    250 182.138.158.67
      2 18.219.233.44
      6 182.254.52.17
      7 182.96.12.70
      1 183.192.179.16
      1 184.105.247.196
      2 185.156.177.234
      1 185.234.217.19
      1 189.170.29.183

上面的是没有排序的,加上sort-rn命令即可排序

[root@cloud ~]# cat 1.log | awk '{print$1}' |sort|uniq -c|sort -rn
    334 182.138.158.183
    250 182.138.158.67
    158 182.138.158.156
     84 182.138.137.127
     16 36.32.3.46
     10 123.245.24.149
      8 163.177.13.2
      7 182.96.12.70
      6 39.100.240.14
      6 39.100.231.247
      6 39.100.158.86
      6 39.100.113.213
      6 182.254.52.17
      5 134.119.189.29

通过上面的命令即可完成统计

如果需要展示前5名的ip,只需要加上 head -5 即可

[root@cloud ~]# cat 1.log | awk '{print$1}' |sort|uniq -c|sort -rn|head -5
    334 182.138.158.183
    250 182.138.158.67
    158 182.138.158.156
     84 182.138.137.127
     16 36.32.3.46
[root@cloud ~]# 

附上一些资料

awk命令详解
https://www.runoob.com/linux/linux-comm-awk.html

sort命令详解
https://www.runoob.com/linux/linux-comm-sort.html

uniq命令详解
https://www.runoob.com/linux/linux-comm-uniq.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值