统计2018/8/6 PV量

grep "06/Aug/2018" access.log|wc -l

统计当天8:00 到9:00的PV

awk '$4>="[06/Aug/2018:21:59:57" && $4<="[06/Aug/2018:24:00:00" {print $0}' access.log|wc -l

统计2018年8月6日 一天内访问最多的10个IP(top10)

grep '06/Aug/2018' access.log | awk '{ips[$1]++} END {for(i in ips){ print i,ips[i]} }'|sort -k2 -rn |head -n10

awk '/06/Aug/2018/{ips[$1]++} END {for(i in ips){print i ,ips[i]}}' access.log |sort -k2rn |head -n10

统计2018年8月6日 一天内访问大于100的IP

awk '/06/Aug/2018/{ips[$1]++} END {for(i in ips){ if(ips[i]>10){print i ,ips[i]}}}' access.log

grep '06/Aug/2018' access.log |awk '{ips[$1]++} END {for(i in ips ){if(ips[i]){ print i,ips[i]} }}'

统计2018年8月6日 访问最多的10个页面($request)

awk '/06/Aug/2018/{urls[$1]++} END {for(i in urls){print i ,urls[i]}}' access.log |sort -k2rn |head -n10

统计2018年8月6日 每个URL访问内容总大小($body_bytes_sent)

awk '/06/Aug/2018/{size[$7]+=$10} END{for(i in size) {print i,size[i]}}' access.log |sort -k2rn |head

统计2018年8月6日 每个IP访问状态码数量($status)

awk '/06/Aug/2018/{ip_code[$1" "$9]++} END{for(i in ip_code) {print i,ip_code[i]}}' access.log |sort -k1rn |head

统计2018年8月6日 IP访问状态码为404及出现次数($status)

awk '/06/Aug/2018/{ if($9=="404"){ip_code[$1" "$9]}} END {for (i in ip_code){print i,ip_code[i]}}' access.log|sort -k3rn |head

统计2018年8月6日 8:30-24:00,访问状态码是404 $9=="404"

awk '$4>="[06/Aug/2018:08:30:00" && $4<="[06/Aug/2018:24:00:00" {if ($9=="404"){ip_code[$1" "$9]++}} END{for(i in ip_code){print i,ip_code[i]}}' access.log

统计2018年8月6日 各种状态码数量

awk '/06/Aug/2018/{code[$9]++} END {for (i in code){print i,code[i]}}' access.log

作者简介: 
陈志珂(头条号:强扭的瓜不好吃)目前就职于中国最大的安卓应用软件公司,任高级工程师现在公司任php开发工程师,python开发工程师,高级运维工程师,公众号“铅笔学园”运维内容合作作者之一。
铅笔学园:IT资源分享|知识分享,做初级程序员的指明灯

shell脚本实例-nginx日志分析的更多相关文章

  1. Linux下添加shell脚本使得nginx日志每天定时切割压缩

    Linux下添加shell脚本使得nginx日志每天定时切割压缩一 简介 对于nginx的日志文件,特别是access日志,如果我们不做任何处理的话,最后这个文件将会变得非常庞大 这时,无论是出现异常 ...

  2. shell脚本备份nginx日志

    vim /data/runlog.sh                                                  #编辑一个 shell 脚本 #!/bin/bash LOGP ...

  3. shell脚本实现网站日志分析统计

    如何用shell脚本分析与统计每天的访问日志,并发送到电子邮箱,以方便每天了解网站情况.今天脚本小编为大家介绍一款不错的shell脚本,可以实现如上功能. 本脚本统计了:1.总访问量2.总带宽3.独立 ...

  4. Nginx日志分析及脚本编写

    在我们日常的运维中,当Nginx服务器正常运行后,我们会经常密切关注Nginx访问日志的相关情况,发现有异常的日志信息需要进行及时处理. 那今天我将跟大家一起来研究和分析Nginx日志,nginx默认 ...

  5. Nginx日志分析脚本

    目录 一.简介 二.脚本 一.简介 运维工作是一个比较复杂的工作,有时候面对上万条的日志,如何作分析?难道一条条的分析? 这估计看两眼就要打哈欠了吧?聪明的人会选择脚本,这就是为什么现在提倡自动化运维 ...

  6. nginx高性能WEB服务器系列之八--nginx日志分析与切割

    nginx系列友情链接:nginx高性能WEB服务器系列之一简介及安装https://www.cnblogs.com/maxtgood/p/9597596.htmlnginx高性能WEB服务器系列之二 ...

  7. 分享7个shell脚本实例--shell脚本练习必备

    概述 看多shell脚本实例自然就会有shell脚本的编写思路了,所以我一般比较推荐看脚本实例来练习shell脚本.下面分享几个shell脚本实例. 1.监测Nginx访问日志502情况,并做相应动作 ...

  8. nginx日志分析利器GoAccess

    面试的时候一定会被面到的问题是:给出web服务器的访问日志,请写一个脚本来统计访问前10的IP有哪些?访问前10的请求有哪些?当你领略过goaccess之后,你就明白,这些问题,除了考验你的脚本背诵记 ...

  9. nginx日志分析利器GoAccess(转)

    面试的时候一定会被面到的问题是:给出web服务器的访问日志,请写一个脚本来统计访问前10的IP有哪些?访问前10的请求有哪些?当你领略过goaccess之后,你就明白,这些问题,除了考验你的脚本背诵记 ...

随机推荐

  1. Vrrp和Hsrp的区别

    VRRP原理协议简述简单来说,VRRP是一种容错协议,它为具有组播或广播能力的局域网(如以太网)设计,它保证当局域网内主机的下一跳路由器出现故障时,可以及时的由另一台路由器来代替,从而保持通讯的连续性 ...

  2. Codecraft-18 and Codeforces Round #458 (Div. 1 + Div. 2, combined)G. Sum the Fibonacci

    题意:给一个数组s,求\(f(s_a | s_b) * f(s_c) * f(s_d \oplus s_e)\),f是斐波那契数列,而且要满足\(s_a\&s_b==0\),\((s_a | ...

  3. spring boot(八)RabbitMQ使用

    RabbitMQ 即一个消息队列,主要是用来实现应用程序的异步和解耦,同时也能起到消息缓冲,消息分发的作用. 消息中间件在互联网公司的使用中越来越多,刚才还看到新闻阿里将RocketMQ捐献给了apa ...

  4. 5月21 练习AJAX的查看详细及批量删除

    老师讲过之后的复习: 显示数据的代码部分: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &q ...

  5. 【oauth2.0】【1】简单介绍

    含义: OAuth是一个关于授权(authorization)的开放网络标准,2.0是当前版本.不是技术,而是一项资源授权协议. OAuth在"客户端"与"服务提供商&q ...

  6. 解决validaform先验证后 ajax提交

    $(".myfroms").Validform({//form class btnSubmit:".submitLayer", 绑定提交按钮 tiptype:4 ...

  7. Wannafly挑战赛22-A/B/C

    链接:https://www.nowcoder.com/acm/contest/160/A来源:牛客网 题目描述 有一个计数器,计数器的初始值为0,每次操作你可以把计数器的值加上a1,a2,...,a ...

  8. ajax代码整理

    $.ajax({ type: "post", [以POST或GET的方式请求.默认GET.PUT和DELETE也可以用,有的浏览器不支持] url: url, [请求的目的地址,须 ...

  9. json字符串转Map、json数组

    json数组转map public static void main(String[] args){ String strArr = "[{\"0\":\"zh ...

  10. 三、存储过程(Stored Procedure)与游标(Cursor)

    一.存储过程 一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数,来执行它. 在大型数据库中,存储过程和触发器具有重要的作用.无论是存储过程还是触发器,都 ...