统计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. kibana的 timelion工具

    时序控件(Timelion)是一款时间序列数据可视化工具,它可以将多种独立的数据源合并呈现到一张视图上. .es函数 index 指明索引    .es(index=nginx-access-log- ...

  2. php二分法查找

    //二分查找(数组里查找某个元素) function bin_sch($array, $low, $high, $k) { if ($low <= $high) { $mid = intval( ...

  3. Linux系统中文件定位与查找

    Linux系统中文件查找 关键词 文件查找 | find | locate 本文主要介绍有关文件查找的两个命令——find和locate,以及压缩打包的命令——compress, gzip,bzip2 ...

  4. python基础之 序列 pickle&json

    内容梗概: 1. 什么是序列化 2. pickle(重点) 3. shelve 4. json(重点) 5. configparser模块 1. 什么是序列化 在我们存储数据或者网络传输数据的时候. ...

  5. 384. Shuffle an Array(java,数组全排列,然后随机取)

    题目: Shuffle a set of numbers without duplicates. 分析: 对一组不包含重复元素的数组进行随机重排,reset方法返回最原始的数组,shuffle方法随机 ...

  6. python记录_day01 初始

    一.python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum),人称龟叔.目前python主要应用于web开发.云计算.科学计算.人工智能.系统运维.金融.图形GUI等 ...

  7. 在MongoDB中执行查询、创建索引

    1. MongoDB中数据查询的方法 (1)find函数的使用: (2)条件操作符: (3)distinct找出给定键所有不同的值: (4)group分组: (5)游标: (6)存储过程. 文档查找 ...

  8. 浅谈mysql中各种表空间(tablespaces)的概念

    mysql中,会涉及到各种表空间的概念,虽然,很多方面这些概念和Oracle有相似性,但也有很多不同的地方,初学者很容易被这些概念弄的晕头转向,从而,混淆这些概念的区别和理解,下面,就简要介绍和说明一 ...

  9. vue 父组件通过props向子组件传递数据/方法的方式

    参考网址:https://segmentfault.com/a/1190000010507616 下面栗子中, callback是传递父组件的方法, mutationName是传递父组件的数据, Ap ...

  10. Express 路径请求及对应的获取路径形式

    req.query // GET /search?q=tobi+ferret req.query.q // => "tobi ferret" // GET /shoes?or ...