zoukankan      html  css  js  c++  java
  • Awk分析nginx访问日志

    awk是Linux系统下一个处理文本的编程语言工具,能用简短的程序处理标准输入或文件、数据排序、计算以及生成报表等等,应用非常广泛。

    默认日志格式:

    '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" "$http_x_forwarded_for"'
    统计访问IP次数:
    # awk '{a[$1]++}END{for(v in a)print v,a[v]}' access.log

    统计访问访问大于100次的IP:

    # awk '{a[$1]++}END{for(v in a){if(a[v]>100)print v,a[v]}}' access.log


    统计访问IP次数并排序取前10:

    # awk '{a[$1]++}END{for(v in a)print v,a[v]|"sort -k2 -nr |head -10"}' access.log

    统计时间段访问最多的IP:

    # awk '$4>="[02/Jan/2017:00:02:00" && $4<="[02/Jan/2017:00:03:00"{a[$1]++}END{for(v in a)print v,a[v]}' access.log


    统计上一分钟访问量:

    # date=$(date -d '-1 minute' +%d/%d/%Y:%H:%M)
    # awk -vdate=$date '$4~date{c++}END{printc}' access.log


    统计访问最多的10个页面:

    # awk '{a[$7]++}END{for(v in a)print v,a[v]|"sort -k1 -nr|head -n10"}' access.log


    统计每个URL数量和返回内容总大小:

    # awk '{a[$7]++;size[$7]+=$10}END{for(v in a)print a[v],v,size[v]}' access.log


    统计每个IP访问状态码数量:

    # awk '{a[$1" "$9]++}END{for(v in a)print v,a[v]}' access.log


    统计访问IP是404状态次数:

    # awk '{if($9~/404/)a[$1" "$9]++}END{for(i in a)print v,a[v]}' ac
  • 相关阅读:
    int、bigint、smallint 和 tinyint
    我的fedora9安装后配置
    系统引导设置与管理EasyBCD与VistaBootPRO
    从Xml文档内部引用Xml Schema验证
    linux开机顺序
    OS引导-笔记
    Logic Volume笔记
    Service笔记
    python中若类属性与实例属性同名
    解析JavaScript中的null与undefined
  • 原文地址:https://www.cnblogs.com/anly95/p/13271887.html
Copyright © 2011-2022 走看看