运维

Nginx访问量统计

2020-01-19  本文已影响0人  yellow_han

1、awk是什么?及awk基本用法。

awk 是一种处理文本文件的语言,是一个强大的文本分析工具。
awk 其实不仅仅是工具软件,还是一种编程语言。
awk 是以文件的一行内容为处理单位的。awk读取一行内容,然后根据指定条件判断是否处理此行内容,若此行文本符合条件,则按照动作处理文本,否则跳过此行文本,读取下一行进行判断。

2、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
上一篇下一篇

猜你喜欢

热点阅读