Nginx访问量统计

1、awk是什么?及awk基本用法。
awk 是一种处理文本文件的语言,是一个强大的文本分析工具。 awk 其实不仅仅是工具软件,还是一种编程语言。 awk 是以文件的一行内容为处理单位的。awk读取一行内容,然后根据指定条件判断是否处理此行内容,若此行文本符合条件,则按照动作处理文本,否则跳过此行文本,读取下一行进行判断。 2、Nginx统计基本命令解释
Nginx访问量统计
文章图片
image.png {print $1}:以空格做为分隔符,取第一个,在access.log中为IP {print $4}:以空格做为分隔符,取第四个,在access.log中为时间 {print $7}:以空格做为分隔符,取第七个,在access.log中为访问路径 wc -l:统计个数 uniq -c: 可检查文本文件中重复出现的行列。-c:表示在每列旁边显示该行重复出现的次数。 sort -n -k 1 -r:排序。-n:表示以数值进行排序。-k 1:表示以第一列做为排序。-r:表示倒序。 head -n 100:表示前一百个。 cut -c 14-21:表示截取14到21列。 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、查询每秒请求
awk '{print $4}' access.log |cut -c 14-21|sort|uniq -c|sort -nr|head -n 100

6、查询某个URL每秒请求
awk '{if($7~"/file/bd/voice/upload/") print $4}' access.log|cut -c 14-21|sort|uniq -c|sort -nr|head -n 100

7、查询某个时间段内
sed -n '/2020:10:10/,/2020:10:21/p' access.log |语句 #例如:查询某个十点十分到十点二十一分每秒请求 sed -n '/2020:10:10/,/2020:10:21/p' access.log |awk '{print $4}' |cut -c 14-21|sort|uniq -c|sort -nr|head -n 100

    推荐阅读