用cat统计apache日志ip
用cat统计apache日志ip
布几岛 发表于4年前
用cat统计apache日志ip
  • 发表于 4年前
  • 阅读 172
  • 收藏 6
  • 点赞 0
  • 评论 0

【腾讯云】如何购买服务器最划算?>>>   

  • 用cat统计apache日志ip

     

    现有一段apache的日志,需要从日志中提取出访问量最大的IP。使用shell实现。 

  • 日志如下(只是举例,故数据量较小): 

     

    $ more aa.txt 

    127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326 

    192.168.1.100 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326 

    192.168.1.100 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326 

    192.168.1.100 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326 

     

    1.要提取访问量最大的IP,需要先从日志中把IP段提取出来。 

     

    $ cat aa.txt |awk -F " " '{print $1}' 

    127.0.0.1 

    192.168.1.100 

    192.168.1.100 

    192.168.1.100 

     

    (PS,此处也可以用cut命令实现。 

     

    $ cut -d " " -f 1 aa.txt 

    127.0.0.1 

    192.168.1.100 

    192.168.1.100 

    192.168.1.100) 

     

    2.对IP进行统计,看各IP出现过多少次 

     

    $ cat aa.txt |awk -F " " '{print $1}' |uniq -c 

          1 127.0.0.1 

          3 192.168.1.100 

     

    (PS:wc -l也可以对行数统计,但统计的是整体的,所有行数。不会分类统计) 

     

    3.按IP出现次数从大到小排列 

     

    $ cat aa.txt |awk -F " " '{print $1}' |uniq -c |sort -r 

          3 192.168.1.100 

          1 127.0.0.1 

     

    4.再次提取出IP段 

     

    $ cat aa.txt |awk -F " " '{print $1}' |uniq -c |sort -r |awk '{print $2}' 

    192.168.1.100 

    127.0.0.1 

     

    5.选择第一行 

     

    $ cat aa.txt |awk -F " " '{print $1}' |uniq -c |sort -r |awk '{print $2}' |head -1 

    192.168.1.100

     


共有 人打赏支持
粉丝 6
博文 36
码字总数 10017
×
布几岛
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: