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格式):


·End·