统计Nginx访问日志中的IP

 nginx  nginx  shell   2016-10-27 

1、统计nginx访问日志中访问量最大的IP,默认输出前十位,如果你要更改,请修改函数json后common中head为head -n 具体数量。

2、脚本中有两个函数,common和json;前者适用于一般nginx访问日志格式,后者适用于json格式日志。

3、一般格式的日志就将最后一行改为common $1,json格式日志则是json $1

#!/bin/bash
if [ -z $1 ];then
  echo "Usage:$0 Nginx_access_log"
  exit 1
fi
function common {
  cat $1 |awk '{print $1}' | sort -nr | uniq -c | sort -nr | head
  cat $1 | awk '{print $1}' | sort | uniq -c | sort -nr | head 
  awk -F " " '{print $1}' $1 | sort | uniq -c | sort -nr | head
}
function json {
  cat $1 | jq .remote_addr | sort -nr | uniq -c | sort -nr | head
}

json $1

效果如下(我的日志是JSON格式):


点赞 打赏
取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦