【SHELL】统计Nginx访问日志状态码

原创 2016年05月30日 11:29:11
#########################################################################
# File Name: check_nginx_server.sh
# Author: Moshiyou
# mail: momo1a@qq.com
#Created Time:Mon 30 May 2016 10:21:52 AM CST
#########################################################################
#!/bin/bash

settrem=$(tput sgr0)

Check_Nginx_Server_Log()
{
    httpCode=(`cat /usr/local/nginx/logs/access.log |  grep -ioE "HTTP/1\.[1|2]\"[[:blank:]][0-9]{3}" | 
    awk -F "[ ]+" '{

        $2!=""?code[$2]++:""
        if($2>=100&&$2<200)
            {i++}
        else if($2>=200&&$2<300)
            {j++}
        else if($2>=300&&$2<400)
            {k++}
        else if($2>=400&&$2<500)
            {n++}
        else if($2>=500)
            {p++}   
    }END{print i?i:0,j?j:0,k?k:0,n?n:0,p?p:0,i+j+k+n+p,code[404],code[403],code[500]}'`)
    echo -e '\E[32m'"The status number [100+] num:" $settrem ${httpCode[0]}
    echo -e '\E[32m'"The status number [200+] num:" $settrem ${httpCode[1]}
    echo -e '\E[32m'"The status number [300+] num:" $settrem ${httpCode[2]}
    echo -e '\E[32m'"The status number [400+] num:" $settrem ${httpCode[3]}
    echo -e '\E[32m'"The status number [500+] num:" $settrem ${httpCode[4]}
    echo -e '\E[32m'"The status all  num:" $settrem ${httpCode[5]}
    echo -e '\E[32m'"The status 404  num:" $settrem ${httpCode[6]}
    echo -e '\E[32m'"The status 403  num:" $settrem ${httpCode[7]}
    echo -e '\E[32m'"The status 500  num:" $settrem ${httpCode[8]}
}

Check_Nginx_Server_Log

这里写图片描述

版权声明:本文为博主原创文章,未经博主允许不得转载。

nginx php error log 配置 查找500 错误

nginx与apache不一样,在apache中可以直接指定php的错误日志,那样在php执行中的错误信息就直接输入到php的错误日志中,可以方便查询。 在nginx中,nginx只对页面的访问做a...
  • joshua1830
  • joshua1830
  • 2016年08月16日 10:44
  • 8942

shell脚本检查统计nginx访问日志access.log

1、统计nginx的访问日志,统计访问总数,http状态码信息等 思路:先将access.log日志中的http状态码取出来,在我的nginx.conf配置下,access.log中一般awk ‘{...
  • heshan307
  • heshan307
  • 2016年08月29日 23:10
  • 2130

通过nginx日志利用shell统计日pv和uv

 通过nginx日志利用shell统计日pv和uv 网上记录nginx日志统计访问量的脚本的文档很多,但是看来看去实际都是一个东西,如下: 1.根据访问IP统计UV awk '{p...
  • qq_33324608
  • qq_33324608
  • 2017年05月04日 16:17
  • 2457

nginx状态码详解

nginx有以下的状态码: 200:服务器成功返回网页  403:服务器拒绝请求。 404:请求的网页不存在  499:客户端主动断开了连接。 500:服务器遇到错误,无法完成请求。 502:...
  • tjcyjd
  • tjcyjd
  • 2017年06月15日 17:28
  • 801

统计nginx某个请求

cat /usr/local/nginx/logs/access.log| sed -n '/24\/Nov\/2015:22:00*/,/24\/Nov\/2015:23:59*/p'|grep '...
  • yqbaa
  • yqbaa
  • 2015年11月24日 22:27
  • 386

shell脚本检查统计nginx访问日志access.log

1、统计nginx的访问日志,统计访问总数,http状态码信息等 思路:先将access.log日志中的http状态码取出来,在我的nginx.conf配置下,access.log中一般awk ‘{...
  • heshan307
  • heshan307
  • 2016年08月29日 23:10
  • 2130

使用cat,awk和sort命令从nginx访问日志中统计user-agent类型

业务场景描述如下: 我有一个Nginx的web服务器,需要从统计日志中统计有哪些类型的设备终端和浏览器访问了我的网站。 访问日志中的每条记录是这样的: 使用下面的命令得到user-agent所在的...
  • tao_627
  • tao_627
  • 2015年01月07日 10:23
  • 3415

shell脚本分析 nginx日志访问次数最多及最耗时的页面(慢查询)

下面是我在做优化时候,经常用到的一段shell 脚本。 这个也可以算是,统计web页面的slowpage 慢访问页面,象mysql slowquery 当服务器压力比较大,跑起来很费力时候。...
  • qq_34341290
  • qq_34341290
  • 2016年11月26日 11:51
  • 1365

shell脚本检查统计nginx访问日志access.log

1、统计nginx的访问日志,统计访问总数,http状态码信息等 思路:先将access.log日志中的http状态码取出来,在我的nginx.conf配置下,access.log中一般awk ‘{...
  • heshan307
  • heshan307
  • 2016年08月29日 23:10
  • 2130

shell脚本分析 nginx日志访问次数最多及最耗时的页面(慢查询)

下面是我在做优化时候,经常用到的一段shell 脚本。 这个也可以算是,统计web页面的slowpage 慢访问页面,象mysql slowquery 当服务器压力比较大,跑起来很费力时候。...
  • qq_34341290
  • qq_34341290
  • 2016年11月26日 11:51
  • 1365
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【SHELL】统计Nginx访问日志状态码
举报原因:
原因补充:

(最多只允许输入30个字)