【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

这里写图片描述

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

相关文章推荐

python基于nginx访问日志统计客户端ip访问量

专业的统计网站,比如百度统计,Google Analytics,cnzz等统计后台提供的都是站长常用的统计指标,比如uv,pv,在线时长,ip等,另外由于网络原因,我发现Google Analytic...

提取nginx日志5分钟内的访问状态

从nginx日志中提取5分钟内访问状态非200的记录

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

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

nginx 日志访问量统计

1.根据访问IP统计UV awk '{print $1}'  access.log|sort | uniq -c |wc -l 2.统计访问URL统计PV awk '{print $7}' ac...

Nginx 日志文件 访问IP统计

问题描述Nginx访问日志文件内容如下:10.9.40.134 - - [01/Aug/2016:06:29:42 +0800] "POST / HTTP/1.1" 302 0 "-" "python...

django下拉列表不显示值,显示为object的处理

环境:django1.8,mysql,python3.4 问题:模板中创建form表单中的下拉列表, 前台打开页面显示object,而不是值,如图: 尝试了多种办法无果,最后解决了,处理办法是修...

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

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

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

当服务器压力比较大,跑起来很费力时候。我们经常做站点页面优化,会去查找那些页面访问次数比较多,而且比较费时。 找到那些访问次数高,并且比较耗时的地址,就行相关优化,会取得立竿见影的效果的。 下面是我在...

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

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

[Python/自动化运维] 运用Python进行Nginx日志状态码过滤

每个公司的NginxWeb服务器日志格式是不一样的,但是正则改一下就可以用,统计状态码及域名的发生次数,注意:注释部分为同一条url 同一个客户端ip及状态码访问过来的,生产环境这样的也不是很多,所以...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【SHELL】统计Nginx访问日志状态码
举报原因:
原因补充:

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