通过nginx日志统计一段时间内ip的访问次数进行排序&访问量统计

查看nginx日志位置

find / -name access.log

grep命令过滤出当天的

cat access.log | grep '2021-03-23' | awk '{print $1}' | sort | uniq -c | sort -nr -k1 | head -n 10

sed命令打印出某个时间段之间的

sed -n '/2021-03-23T10:40:00/,/2021-03-23T10:50:10/p' access.log | awk '{print $1}' | sort | uniq -c | sort -nr -k1 | head -n 10

1分钟之内的ip访问次数排序

sed -n "/`date -d "1 minute ago" +"%Y-%m-%dT%H:%M:%S"`/,/`date +"%Y-%m-%dT%H:%M:%S"`/p" access.log | awk -F '"' '{ print $8 }' | sort | uniq -c | sort -nr -k1 | head -n 10

cat /var/log/nginx/access.log | grep `date -d "1 minutes ago" +"%Y-%m-%d"T"%H:%M"`|awk -F '"' '{ print $8 }' |sort |uniq -c |sort -rn | head -n 10

 

访问量统计

1.根据访问IP统计UV

awk '{print $1}' access.log|sort | uniq -c |wc -l

2.统计访问URL统计PV

awk '{print $7}' access.log|wc -l

3.查询访问最频繁的URL

awk '{print $7}' access.log|sort | uniq -c |sort -n -k 1 -r|more

4.查询访问最频繁的IP

awk '{print $1}' access.log|sort | uniq -c |sort -n -k 1 -r|more

5.根据时间段统计查看日志

cat access.log| sed -n '/14\/Mar\/2015:21/,/14\/Mar\/2015:22/p'|more