美文网首页运维
Nginx访问量统计

Nginx访问量统计

作者: yellow_han | 来源:发表于2020-01-19 14:45 被阅读0次

    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
    

    相关文章

      网友评论

        本文标题:Nginx访问量统计

        本文链接:https://www.haomeiwen.com/subject/eerrzctx.html