• Linux系列之:9秒钟掌握多种实时查询日志的方法,再也不用cat命令了。


    1、引言

    由于最近从某些企业毕业的同学很多,导致很多同学不得不投简历,找工作。
    作为面试官的我,在最近也是没少忙活。
    小屌丝:鱼哥,最近听说你最近睡得挺晚的。
    小鱼:你咋知道, 你是不是在我的电脑安装了什么…
    小屌丝:鱼哥,我这么正经, 怎么能干那么流氓的事情…
    小鱼:那你咋知道我睡得晚。
    小屌丝:用脚指头就能想到, 最近上海有很多企业的同学毕业了,所以…会有一些毕业的同学约你帮忙看简历,聊聊面试技能之类的吧。
    小鱼:嗯,最近在公司也面试了不少的同学,但是,这些同学的共性之一都是,对linux的命令不太熟,
    小屌丝:比方说呢?
    小鱼:如何实时查询日志文件,如何同时实时查询两个日志文件呢?
    小屌丝:这个我能想到, cat,tail
    小鱼:然后呢,
    小屌丝:没有然后了.
    小鱼:…
    在这里插入图片描述
    其实关于Linux的命令,我专门写过一篇《吊打面试官系列之:掌握了这166个Linux常用命令,面试官果然被我征服了。。
    有的同学私下反馈, 鱼哥,这么多命令,我好难背的哦。
    唉~~~
    为了照顾某些同学,我今天就对如何实时查询日志的方法,进行总结。

    2、less

    说道less, 我想,应该没人不知道吧

    • 分页显示文件内容,more命令的相反用法;
    • 多用于读取文本文件,
    • 用于读取实时被更改的文件

    用法

    less +F err.log  #+F 实时追踪更改的文件
    
    • 1

    说的没错,我们来演示一下,

    处于职业素养, 我把服务器重要信息 隐藏了。

    在这里插入图片描述
    我们可以看到,日志很清晰的展示出来。
    当然,如果退出视图的话, 按 q 就可以。

    3、tail

    3.1 单文件实时查询

    接着,我们就来说说tail呢。
    关于tail,我们在平时也会经常的用到,也是很高频的一个linux命令。
    我们想想一下,关于Linux常用的命令:
    用法

    tail -f err.log  
    
    • 1

    在这里插入图片描述

    3.2 多文件实时查询

    关于tail的用法,还有更厉害的。
    如果我们既想看 error.log 文件,又想看info.log文件信息,
    如何使用一行命令查看呢?
    这里,tail就会解决你的困扰。

    用法

    tail -f err.log  -f  info.log
    
    • 1

    展示
    在这里插入图片描述

    3.3 目标名称查询

    如果你要查看的日志内容更新很快, 例如,info.log文件的内容肯定是刷刷的不停的更新,这个时候,就非常的不方便,
    小屌丝:这种情况,有没有解决办法呢?
    小鱼:这还用说,必须的。
    tail + grep 可以帮你解决这个问题
    用法

    tail -f log_file | grep search_term
    
    • 1

    展示
    在这里插入图片描述

    如果出现的内容较多, 看着不方便,也可以解决的。
    利用 grep -C 来显示查询结果的前后几行:
    用法

    tail -f log_file | grep -C 3 search_term
    
    • 1

    当然, 我们也可以查询多个名称

    用法

    tail -f log_file | grep -C 3 -i - E 'search_term_one | search_term_two'
    
    • 1

    3.4 跟踪日志

    日志轮转(rotation)后的跟踪,这在大厂中很常见,尤其像这种 双十一大型活动,
    日志的输出量是很多的。
    如果实时跟踪日志文件, 就会占用资源,也可能会出现问题。
    这个时候, tail的功能就体现出来了。

    默认情况下,tail 命令用于文件描述符。如果当前日志文件被旋转,tail 命令现在将指向一个存档日志文件,该文件现在不会记录任何更改。

    解决方案是按照日志文件的名称跟踪日志文件。这样,即使发生日志旋转,尾部也将指向当前日志文件(因为其名称从未更改)。

    用法:

    tail --follow=name  error.log | grep -C 3 -i - E 'search_term_one search_term_two'
    
    • 1

    在这里插入图片描述

    4、multitail

    以上两个都是linux自带的,接下来介绍的,是需要安装的,即:multitail
    小屌丝:鱼哥,multitail是不是有什么特别的技能,
    小鱼:何出此言?
    小屌丝:否则,前两个介绍的都是Linux自带的,而multitail是需要安装的, 所以,一点有哪一点,打动了你,
    小鱼:奈斯。multitail确实有打动我的点。

    multitail的优点在于:可以拆分视图显示文件。
    顾名思义,可以同时显示多个文件, 也可以把每个文件拆分视图显示。

    4.1 安装

    关于安装, 这里就简单提一下, 毕竟, 安装方式很简单。

    安装依赖

    [root@node1 tmp]# wget http://mirror.centos.org/centos/7/os/x86_64/Packages/ncurses-devel-5.9-14.20130511.el7_4.x86_64.rpm
    [root@node1 tmp]# rpm -ivh ncurses-devel-5.9-14.20130511.el7_4.x86_64.rpm  --nodeps
    
    
    • 1
    • 2
    • 3

    安装multitail

    wget https://www.vanheusden.com/multitail/multitail-6.5.0.tgz
    tar xf multitail-6.5.0.tgz
    cd multitail-6.5.0
    make
    echo $?
    make install
    echo $?
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    4.2 用法

    multitail 的用法, 跟tail -f 一样,
    所以没有太多的复杂度,

    用法

    multitail file_1 file_2
    
    • 1

    默认显示最后100行。

    不同之处在于:
    使用 -s 选项拆分视图,后面跟一个数字,即视图的数量:

    用法

    multitail -s 2  file_1 file_2
    
    • 1

    在这里插入图片描述

    如果想学习更多multitail 的命令,可以使用 -h 来进行查看

    multitail -h
    
    • 1

    5、总结

    看到这里, 今天的分享差不多就结束了。
    关于实时查看日志的方式,还可以通过journal 命令。
    如果感兴趣的你, 可以在深入研究journal 。
    据说也是一个很不错的命令。

    最后,再唠叨一句,我是小鱼

    在这里插入图片描述

    同时,我也做面试培训与职场规划:

    • 如果你处于职场迷茫期,欢迎来咨询;
    • 如果你处于技术瓶颈期,也欢迎咨询;
  • 相关阅读:
    Python 中-m 模块的妙用
    CMU 15-445 Project 0 实现字典树
    64 坐标系
    Nginx_day02_Nginx进阶篇_静态资源部署
    [C++ 网络协议] Windows平台下的线程
    Minium:专业的小程序自动化工具
    每日一博 - 闲聊 Java 中的中断
    逻辑功能的几种基本描述方法
    我们该如何提升测试效率?
    基于SpringBoot的智能推荐的卫生健康系统
  • 原文地址:https://blog.csdn.net/wuyoudeyuer/article/details/127615452