• 1
  • 0
分享
  • Linux系列之:9秒钟掌握多种实时查询日志的方法,再也不用cat命令
  • Carl_奕然 2022-11-01 10:51:28 字数 2571 阅读 1431 收藏 0

 1、引言

由于最近从某些企业毕业的同学很多,导致很多同学不得不投简历,找工作。

作为面试官的我,在最近也是没少忙活。

小屌丝:鱼哥,最近听说你最近睡得挺晚的。

小鱼:你咋知道, 你是不是在我的电脑安装了什么.... 

小屌丝:鱼哥,我这么正经, 怎么能干那么流氓的事情....  

小鱼:那你咋知道我睡得晚。

小屌:用脚指头就能想到, 最近上海有很多企业的同学毕业了,所以....会有一些毕业的同学约你帮忙看简历,聊聊面试技能之类的吧。

小鱼:嗯,最近在公司也面试了不少的同学,但是,这些同学的共性之一都是,对linux的命令不太熟, 

小屌丝:比方说呢?

小鱼:如何实时查询日志文件,如何同时实时查询两个日志文件呢?

小屌丝:这个我能想到, cat,tail 

小鱼:然后呢,

小屌丝:没有然后了.

小鱼:..... 

11.gif

其实关于Linux的命令,我专门写过一篇《[**吊打面试官系列之:掌握了这166个Linux常用命令,面试官果然被我征服了。。**](https://blog.csdn.net/wuyoudeyuer/article/details/126280418)》

有的同学私下反馈, 鱼哥,这么多命令,我好难背的哦。

唉~~~

为了照顾某些同学,我今天就对如何实时查询日志的方法,进行总结。

2、less

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

 - 分页显示文件内容,more命令的相反用法;

 - 多用于读取文本文件,

 - 用于读取实时被更改的文件

用法

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

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

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

45ec2a1538c547419d16ab5beaf3623a.png

我们可以看到,日志很清晰的展示出来。

当然,如果退出视图的话, 按 q 就可以。 

3、tail

3.1 单文件实时查询

接着,我们就来说说tail呢。

关于tail,我们在平时也会经常的用到,也是很高频的一个linux命令。

我们想想一下,关于Linux常用的命令:

用法

tail -f err.log

c0aa5f9eccb34b3795389f67116c3027.png

 3.2 多文件实时查询

关于tail的用法,还有更厉害的。

如果我们既想看 error.log 文件,又想看info.log文件信息,

如何使用一行命令查看呢?

这里,tail就会解决你的困扰。

用法

tail -f err.log  -f  info.log

展示

f271adc711be427994b278c99415fd21.png

3.3 目标名称查询

如果你要查看的日志内容更新很快, 例如,info.log文件的内容肯定是刷刷的不停的更新,这个时候,就非常的不方便, 

小屌丝:这种情况,有没有解决办法呢?

小鱼:这还用说,必须的。 

tail + grep  可以帮你解决这个问题

用法

tail -f log_file | grep search_term

展示

289dc7c1add543c98554a162adabb5fc.png

如果出现的内容较多, 看着不方便,也可以解决的。

利用 grep -C  来显示查询结果的前后几行:

用法

tail -f log_file | grep -C 3 search_term

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

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

 3.4 跟踪日志

日志轮转(rotation)后的跟踪,这在大厂中很常见,尤其像这种 双十一大型活动,

日志的输出量是很多的。

如果实时跟踪日志文件, 就会占用资源,也可能会出现问题。

这个时候, tail的功能就体现出来了。

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

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

用法

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

45ec2a1538c547419d16ab5beaf3623a (1).png

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

安装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 $?

4.2 用法

multitail 的用法, 跟tail -f 一样, 

所以没有太多的复杂度,

用法

multitail file_1 file_2

默认显示最后100行。

不同之处在于:

使用 -s 选项拆分视图,后面跟一个数字,即视图的数量

用法

multitail -s 2  file_1 file_2

c1188a052614487e8453790c2f9b4e41.png

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

multitail -h

5、总结

看到这里, 今天的分享差不多就结束了。 

关于实时查看日志的方式,还可以通过journal  命令。

如果感兴趣的你, 可以在深入研究journal  。

据说也是一个很不错的命令。

最后,再唠叨一句,我是奕然:

 - CSDN博客专家

 - 51Testing认证讲师


  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • web兼容性概述定义:软件兼容性测试是指检查软件之间能否正确地进行交互和共享信息。随着用户对来自各种类型软件之间共享数据能力和充分利用空间同时执行多个程序能力的要求,测试软件之间能否协作变得越来越重要。软件兼容性测试工作的目标是保证软件按照用户期望的方式进行交互。平台的兼容性:硬件平台:pc手机pad等,操作系统:AndroidiOSWindowsmaclinux。浏览器:谷歌浏览器火狐浏览器IE浏览器等。web兼容性测试:以浏览器兼容性为主,操作系统和分辨率为辅。明确需求:根据用户需求去找浏览器,市场占有率的浏览器(浏览器最近的三个版本)操作系统:安装虚拟机。浏览器市场占有率浏览器内核阵营操...
            0 0 934
            分享
          •   巴西最高法院法官亚历山大-德-莫赖斯(Alexandre de Moraes)在周二发布的一项命令中写道,该公司已经满足了"立即恢复在巴西活动的所有必要条件","我命令结束封禁"。  这一授权结束了这位亿万富翁与莫赖斯之间长达数月的争斗,在马斯克藐视巴西法规之后,法官于 8 月底封杀了X。  这相当于这位世界首富的一次重大屈服,他曾将与莫赖斯的冲突作为反对南美国家管制网络内容的言论自由运动。  马斯克关闭了 X 在巴西的办公室,以抗议删除某些资料的命令,据称这些资料对巴西的民主构成威胁。 几天后,最高法院封禁该平台,理由是它没有遵守当地法律,该法律要...
            0 0 271
            分享
          • 一、功能测试1、链接测试  (1)测试所有链接是否按指示的那样确实链接到了该链接的页面;(2)测试所链接的页面是否存在;(3)保证Web应用系统上没有孤立的页面(所谓孤立页面是指没有链接指向该页面,只有知道正确的URL地址才能访问)。2、表单测试(1)注册、登陆、信息提交等,必须测试提交操作的完整性,以校验提交给服务器的信息的正确性;(2)用户填写的出生日期与职业是否恰当,填写的所属省份与所在城市是否匹配等;(3)检验默认值的正确性;(4)如表单只能接受指定的某些值,测试时跳过这些字符,看系统是否会报错。3、Cookies测试(session测试同)(1)Cookies是否起作用;(2)Coo...
            0 0 1405
            分享
          • 第一部分:先准备好Jmeter1.在开始编写脚本之前,先要确保你的Jmeter能够正常运行。若你还没有安装Jmeter,可参考以下方法:Jmeter需要java运行环境,所以需要下载JDK,JDK下载地址:https://www.oracle.com/technetwork/java/javase/downloads/index.html(最好使用 JDK 8  以上的版本,上述链接下可以下载最新的 JDK 版本)安装JDK,请参考百度教程:https://jingyan.baidu.com/article/6dad5075d1dc40a123e36ea3.html(注意java环境...
            14 14 3438
            分享
          • 一、选择题1、对计算机软件和硬件资源进行管理和控制的软件是(D)文件管理程序输入输出管理程序命令出来程序操作系统2、在没有需求文档和产品说明书的情况下只有哪一种测试方法可以进行的(A)错误推测法测试路劲分析测试语句覆盖测试条件覆盖测试3、某测试人员通过执行测试软件测试的方法对当前功能进行了测试,该测试人员使用的测试方法为(C)静态测试单元测试黑盒测试4、编写测试计划的目的是(ABC)多选题使测试工作顺利进行使项目参与人员沟通更舒畅使测试工作更加系统化软件工程以及软件过程的需要软件过程规范化的要求控制软件质量5、关于软件测试与软件开发的认识,不正确的是(B)软件生命周期各个阶段都可能产生测试软件...
            14 17 3964
            分享
      • 51testing软件测试圈微信