linux grep 查看大日志文件

标签: linux grep 日志文件 | 发表时间:2021-06-07 15:52 | 作者:锐玩道
出处:https://juejin.cn/backend

这是我参与更文挑战的第7天,活动详情查看: 更文挑战

如果❤️我的文章有帮助,欢迎点赞、关注。这是对我继续技术创作最大的鼓励。

linux grep 查看大日志文件

场景

今天隔离还在继续,在家办公。忽然下午午工作群里发来一个 mysql 机器io/负载上升的预警,异常发生在 15:45 ~ 16:00 之间。为了事后为了查明原因,需要翻看慢查询日志 slow.log 才发现日志 8G 多... 故事就这样开始了 图片描述

怎么办呢。第一个想到的就是常用 grep 匹配关键字

grep 关键字

grep 常用于 关键字 匹配文件文本信息。
但关键字从哪里来呢,可以命令 head slow3306_9110.log 查看下检索文件的 内容结构 图片描述

因为异常发生在 15:45 ~ 16:00 之间,我就可以这样写

grep -n 'Time: 210607 15:[45-59]' slow3306_9110.log

时间 15:4515:59 之间内容,但这样匹配只能看到时间,这明显不是我们想要的 图片描述

grep 显示匹配行附近内容

  • A -> After
  • B -> Before
  • C -> Context

举个例子:

grep -A5 'Time: 210607 15:[45-59]' slow3306_9110.log

就能把匹配 Time: 210607 行的 下面 5 行也显示出来。 图片描述

grep 多关键字搜索

但这时我们有会发现, Query_time: 0.925375 查询时间有大有小。我现在在查故障明细是只想看 查询消耗时间大的

所以这里就需要用到 grep 多关键字搜索

匹配多个关键字(且)

管道符连接 多个条件 实现关键字 且关系 匹配:

grep -A5 'Time: 210607 15:[45-59]' slow3306_9110.log | grep 'Query_time: (\d[2-5])'

同一行同时满足两个条件( TimeQuery_time)才能够匹配。

不过这里也必须说明: 因为上图内容格式中,Time 和 Query_time 不在同一列,所以上诉命令只是这个演示。实际只能匹配 同一行同时满足两个条件 内容

grep -E 匹配多个关键字(或)

grep -E "word1|word2|word3" file.txt

匹配文件中 同一行包含 word1、word2、word3 之一

总结

总结下来。

  • 由于多行无法同时命中 时间 15:45 至 15:59查询时间在 2~5位整数之间
  • 另外由于文件太大,grep 一次就能跑个 3、4 分钟实际体验并不好

相关 [linux grep 日志文件] 推荐:

linux grep 查看大日志文件

- - 掘金 后端
这是我参与更文挑战的第7天,活动详情查看:. 如果❤️我的文章有帮助,欢迎点赞、关注. 这是对我继续技术创作最大的鼓励. linux grep 查看大日志文件. 今天隔离还在继续,在家办公. mysql 机器io/负载上升的预警,异常发生在. 15:45 ~ 16:00 之间. 为了事后为了查明原因,需要翻看慢查询日志.

Linux grep命令用法

- - 酷勤网-挖经验 [expanded by feedex.net]
grep — print lines matching a pattern (将符合样式的该行列出). ◎语法: grep [options]. grep用以在file内文中比对相对应的部分,或是当没有指定档案时,. 在预设的情况下,grep会将符合样式的那一行列出. 此外,还有两个程序是grep的变化型,egrep及fgrep.

linux命令终极系列(grep)

- JingSQ - C++博客-首页原创精华区
        说明:从test.txt中搜寻有aa样式的行,并显示该行的后1行.         说明:从test.txt中搜寻有aa样式的行,并显示该行的前1行.         说明:列出file中除包含panda样式的行外并列出其上下2行.     (4) -a或--test.        说明:如果不加-a,找到后,一般会显示“匹配到二进制文件 tp_smapi-0.40.tgz”,找不到.

在Linux上使用logwatch分析监控日志文件

- - SegmentFault 最新的文章
在维护Linux服务器时,经常需要查看系统中各种服务的日志,以检查服务器的运行状态. 如登陆历史、邮件、软件安装等日志. 系统管理员一个个去检查会十分不方便;且大多时候,这会是一种被动的检查,即只有在发现系统运行异常时才会想到去查看日志以获取异常的信息. 那么如何主动、集中的分析这些日志,并产生报告,定时发送给管理员就会显得十分重要.

好文: 為什麼 GNU grep 這麼快

- chuang - Tsung's Blog
Linux shell 常常會用到 grep, 為何 grep 可以那麼快的找到我們要的資料?. 這篇文章有清楚的說明: 為什麼 GNU grep 這麼快 (下述摘錄自此文), 詳細討論原文: why GNU grep is fast. 為什麼 GNU grep 這麼快. GNU grep 有使用下述技巧:.

nginx 日志文件切割

- - 企业架构 - ITeye博客
转载: http://www.cnblogs.com/benio/archive/2010/10/13/1849935.html. 偶然发现access.log有21G大,所以将其切割. Nginx 是一个非常轻量的 Web 服务器,体积小、性能高、速度快等诸多优点. 但不足的是也存在缺点,比如其产生的访问日志文件一直就是一个,不会自动地进行切割,如果访问量很大的话,将 导致日志文件容量非常大,不便于管理.

Windows IIS日志文件分析程序

- bababubuliku - 月光博客
  Windows Server具有事件日志记录的功能,其IIS日志文件里记录了包括下列信息:谁访问了您的站点,访问者查看了哪些内容等等. 通过定期检查这些日志文件,网站管理员可以检测到服务器或站点的哪些方面易受攻击或存在其他安全隐患.   不过,目前的日志分析工具并不是很完善,有些功能并不具备,特别是针对某个URL地址进行攻击的分析并不多,下面是一个VB Script程序,保存为VBS程序后可以在服务器上运行,用于分析和检测IIS日志里针对某个URL地址进行攻击的IP地址.

jstack Dump 日志文件分析

- - Web前端 - ITeye博客
jstack Dump 日志文件中的线程状态. dump 文件里,值得关注的线程状态有:. Deadlock(重点关注) . 执行中,Runnable   . Waiting on condition(重点关注) . Waiting on monitor entry(重点关注). 暂停,Suspended.

Logback日志文件的配置

- - BlogJava-首页技术区
日志每天归档,同时目录名包含相应的年份和月份. 注意其中aux的使用,在fileNamePatter中如果出现多个%d的情况下,只能有一个为主配置,其他都需要使用aux标记为附属配置. 其中的%i请参看下节的介绍. 文件同时根据日期和大小滚动创建. fileNamePattern在上一节已经介绍,这里主要介绍timeBasedFileNamingAndTriggeringPolicy,此处配置对文件大小的限定,由fileNamePattern的%i在确定下标在文件名中的位置.

【体系结构】MySQL 日志文件--慢查询日志

- - CSDN博客数据库推荐文章
   顾名思义,慢查询日志中记录的是执行时间较长的 query.    可以设一个阀值、将运行时间超过该值的所有SQL语句都记录到慢查询日志文件中.    该阀值可以通过参数long_query_time来设置、默认是10秒.    这里需要一点、对于运行时间正好等于long_query_time的情况、并不会被记录.