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