此处使用Nginx access.log 举例,Tomcat 日志自己举一反三 。使用 awk 分解出Nginx access日志中的信息
以此类推…… 当我们使用默认的域分割符时,我们可以从日志中解析出下面不同类型的信息:
我们不难发现,仅使用默认的域分隔符 , 不方便解析出请求行、引用页和浏览器类型等其他信息,因为这些信息之中包含不确定个数的空格 。因此,我们需要把域分隔符修改为 “ , 就能够轻松读出这些信息 。
注意:这里为了避免 Linux Shell 误解 “ 为字符串开始,我们使用了反斜杠,转义了 “。现在,我们已经掌握了 awk 的基本知识,以及它是怎样解析日志的 。
此处使用Nginx access.log 举例,Tomcat 日志自己举一反三 。
如果我们想知道那些类型的浏览器访问过网站,并按出现的次数倒序排列,我可以使用下面的命令:
此命令行首先解析出浏览器域,然后使用管道将输出作为第一个 sort 命令的输入 。第一个 sort 命令主要是为了方便 uniq 命令统计出不同浏览器出现的次数 。最后一个 sort 命令将把之前的统计结果倒序排列并输出 。
我们可以使用下面的命令行,统计服务器返回的状态码,发现系统可能存在的问题 。
正常情况下,状态码 200 或 30x 应该是出现次数最多的 。40x 一般表示客户端访问问题 。50x 一般表示服务器端问题 。下面是一些常见的状态码:
HTTP 协议状态码定义可以参阅:
查找并显示所有状态码为 404 的请求
统计所有状态码为 404 的请求
现在我们假设某个请求 ( 例如 : URI: /path/to/notfound ) 产生了大量的 404 错误,我们可以通过下面的命令找到这个请求是来自于哪一个引用页,和来自于什么浏览器 。
有时候会发现其他网站出于某种原因 , 在他们的网站上使用保存在自己网站上的图片 。如果您想知道究竟是谁未经授权使用自己网站上的图片,我们可以使用下面的命令:
注意:使用前,将修改为自己网站的域名 。
统计共有多少个不同的 IP 访问:
统计每一个 IP 访问了多少个页面:
将每个 IP 访问的页面数进行从小到大排序:
统计 2018 年 8 月 31 日 14 时内有多少 IP 访问 :
统计访问最多的前十个 IP 地址
查看某一个 IP访问了哪些页面:
统计某个 IP 的详细访问情况,按访问频率排序
列出传输大小最大的几个文件
列出输出大于 204800 byte ( 200kb) 的页面以及对应页面发生次数
列出访问最频的页面(TOP100)
列出访问最频的页面([排除php页面】(TOP100)
列出页面访问次数超过100次的页面
列出最近1000条记录,访问量最高的页面
统计每分钟的请求数,top100的时间点(精确到分钟)
统计每小时的请求数,top100的时间点(精确到小时)
统计每秒的请求数,top100的时间点(精确到秒)
统计当天的 pv
说明:
可以使用下面的命令统计出所有响应时间超过 3 秒的日志记录 。
注意:NF 是当前记录中域的个数 。$NF 即最后一个域 。
列出php页面请求时间超过3秒的页面,并统计其出现的次数,显示前100条
列出相应时间超过 5 秒的请求,显示前20条
统计蜘蛛抓取次数
统计蜘蛛抓取404的次数
通过本文的介绍,我相信同学们一定会发现 linux三剑客强大之处 。在命令行中,它还能够接受,和执行外部的 AWK 程序文件,可以对文本信息进行非常复杂的处理,可以说“只有想不到的,没有它做不到的” 。
Linux常用命令集dudu [选项][文件]
显示每个文件和目录的磁盘使用空间 。
- redis的热点数据缓存 redis热点数据切换
- 如何修改戴尔服务器的IP地址? 戴尔服务器ip地址怎么改
- mysql中ext
- mysql数据统计方案
- 优惠券功能的业务流程设计图谱 优惠券redis处理
- redis通配符的使用
- redis是开发工具吗 redis的开发人是谁
- mysql备份一个表的数据 备份一个mysql库
- mysql中删除记录的命令 mysql删除中继日志
- mysql 判断 mysql的判断语句
