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

2023-11-06

1、引言

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

2、less

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

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

用法

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

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

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

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

3、tail

3.1 单文件实时查询

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

tail -f err.log  

在这里插入图片描述

3.2 多文件实时查询

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

用法

tail -f err.log  -f  info.log

展示
在这里插入图片描述

3.3 目标名称查询

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

tail -f log_file | grep search_term

展示
在这里插入图片描述

如果出现的内容较多, 看着不方便,也可以解决的。
利用 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'

在这里插入图片描述

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

在这里插入图片描述

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

multitail -h

5、总结

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

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

在这里插入图片描述

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

  • 如果你处于职场迷茫期,欢迎来咨询;
  • 如果你处于技术瓶颈期,也欢迎咨询;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • 让 TeXstudio 在 linux mint 中工作:找不到文件“url.sty”。

    刚刚切换到 Linux Mint 以前的顽固 Windows 用户 我在尝试安装 TeXstudio 时遇到一些问题 Sudo apt get install texstudio 给了我一个正确的安装 至少 我是这么认为的 但是当我尝试构建
  • 捕获数据包后会发生什么?

    我一直在阅读关于网卡捕获数据包后会发生什么的内容 我读得越多 我就越困惑 首先 我读过传统上 在网卡捕获数据包后 它会被复制到内核空间中的一个内存块 然后复制到用户空间 供随后处理数据包数据的任何应用程序使用 然后我读到了 DMA 其中 N
  • 推荐用于小型站点的 IRC 服务器 (ircd)? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 情况 我想使用 IRC 机器人作为我正在研究的其他代码的通用通信接口 服务器硬件陈旧且内存不足 但运行在相对最新的 Debian GNU
  • 码头无故停止

    我需要经验丰富的码头用户的建议 我在负载均衡器 亚马逊云 后面维护着 2 台 Linux 机器 使用 Jetty 9 0 3 有时我的 Jetty 容器会被 Thread 2 无故关闭 同时地 显示以下日志并且容器无故停止 没有错误 没有例
  • 找出 Linux 上的默认语言

    有没有办法从C语言中找出Linux系统的默认语言 有 POSIX API 可以实现这个功能吗 例如 我想要一个人类可读格式的字符串 即德语系统上的 German 或 Deutsch 法语系统上的 French 或 Francais 等 有类
  • Linux“屏幕”的 Windows 等效项还是其他替代方案?

    我正在寻找一种在 Windows 环境中控制程序的方法 我希望它与 Linux 软件有点相似 screen 我搜索的原因是我需要使用标识符启动一个程序 在 Windows 上 这样我以后就能够关闭该特定程序 而无需关闭其他任何程序 即使实际
  • 错误:命令“c++”失败,退出状态为 1

    所以我尝试按照以下说明安装 Pyv8https andrewwilkinson wordpress com 2012 01 23 integrating python and javascript with pyv8 https andre
  • 在 Linux 上创建线程与进程的开销

    我试图回答在 python 中创建线程与进程有多少开销的问题 我修改了类似问题的代码 该问题基本上运行一个带有两个线程的函数 然后运行带有两个进程的相同函数并报告时间 import time sys NUM RANGE 100000000
  • 如何设置Java线程的CPU核心亲和力?

    我搜索了以前关于类似主题的帖子 但找不到合适的答案 因此提出这个问题 非常感谢您帮助回答 我知道在 Linux 中通过任务集命令设置进程与特定 CPU 核心的关联性 但我想设置 Java 线程与特定 cpu 核心的亲和力 以便属于同一进程的
  • 在 Docker 容器中以主机用户身份运行

    在我的团队中 我们在进行开发时使用 Docker 容器在本地运行我们的网站应用程序 假设我正在开发 Flask 应用程序app py具有依赖关系requirements txt 工作流程大致如下 I am robin and I am in
  • 如何重命名 .tar.gz 文件而不提取内容并在 UBUNTU 中创建新的 .tar.gz 文件?

    我有一个命令将创建一个新的 tar gz现有文件中的文件 sudo tar zcvf Existing tar gz New tar gz 该命令将创建一个新的New tar gz从现有的文件Existing tar gz file 谁能告
  • XAMPP Windows 上的 Php Cron 作业

    嗯 我是这个词的新手CRON 据我所知 这是一个Unix安排特定操作在定义的时间间隔后执行的概念 我需要运行一个php文件 每小时更新一次数据库 但我的困惑在于安排执行 我在用XAMPP用于 Windows 7 上的本地开发测试 我发现了什
  • 如何在 Linux/OS X 上温和地终止 Firefox 进程

    我正在使用 Firefox 进行一些自动化操作 尽管我可以从 shell 打开 Firefox 窗口 但我无法正确终止它 如果我kill火狐进程与kill 3 or kill 2当我下次打开新的 Firefox 窗口时 命令会询问我是否要在
  • 计算 TCP 重传次数

    我想知道在LINUX中是否有一种方法可以计算一个流中发生的TCP重传的次数 无论是在客户端还是服务器端 好像netstat s解决了我的目的
  • 使用c在linux上分块读写

    我有一个 ASCII 文件 其中每一行都包含一个可变长度的记录 例如 Record 1 15 characters Record 2 200 characters Record 3 500 characters Record n X cha
  • 如何列出 nginx 中的所有虚拟主机

    有没有一个命令可以列出 CentOS 上 nginx 下运行的所有虚拟主机或服务器 我想将结果通过管道传输到文本文件以用于报告目的 我正在寻找与我用于 Apache 的命令类似的命令 apachectl S 2 gt 1 grep 端口 8
  • 完整的 C++ i18n gettext()“hello world”示例

    我正在寻找完整的 i18ngettext 你好世界的例子 我已经开始了一个基于的脚本使用 GNU gettext 的本机语言支持教程 https web archive org web 20130330233819 http oriya s
  • 在非实时操作系统/内核上执行接近实时任务的最佳方法是什么?

    在一台 GNU Linux 机器上 如果想要执行 实时 亚毫秒级时间关键 任务 您几乎总是必须经历漫长 复杂且容易出现问题的内核补丁过程 以提供足够的支持 1 http en wikipedia org wiki RTLinux Backg
  • 为什么默认情况下不启用 arp 忽略/通告 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我有一个需要经验才能回答的具体问题 为什么 arp ignore arp announce 在 Linux 安装 例如 debian 上默认不启用 有
  • pthread_self() 返回的线程 ID 与调用 gettid(2) 返回的内核线程 ID 不同

    这句话来自于pthread self 的手册页 http linux die net man 3 pthread self 那么 我应该根据什么来决定是否应该使用pthread self or gettid确定哪个线程正在运行该函数 两者都

随机推荐

  • 深入理解计算机系统Lab3实验

    目录 实验准备 实验资源的准备 生成ctarget等文件的反汇编代码 确定实验环境是大端还是小端 实验进行 Phase1 简述 测试 分析 目标 找到touch1的代码并重写 并且 找到getbuf 函数中 为Get 函数所开辟的字符串最大
  • 数据治理-数据质量-数据质量实施方法

    质量实施方法 数据质量领域研究学者和专家结合自身实践 先后提出了一系列质量管理得项目实施方法 其中以全面信息质量管理 全面数据质量管理 数据管理十步法 六西格玛等 与传统数据质量管理一样 数据GIGO规则仍然发挥作用 但在由于大数据的多样性
  • Python 套接字 Accept 超时

    套接字是网络通信的基本构建块 每当两个网络实体需要传输数据时 就会打开一个套接字 这些套接字在会话期间保持连接 但有时 在 Python 中使用套接字时 您可能会等待很长时间 而另一端仍然接受套接字连接 本文讨论了 Python 中套接字的
  • 好书推荐《R语言在定量金融中的应用》

    给大家推荐一本R语言在定量金融方面的好书 是我老师编写的 我也非常有幸参与到这本书的编写过程中 这本书2015年5月份正式上线 其实从2013年底开始写的 经历大约两年的时间 这本书一出来就收到了很大的关注 读者反映都很好 这本书本身是属于
  • HIVE中数据更新(update)操作的实现

    数据更新是一种常见的操作 然后数据仓库的概念一般要求的是数据是集成 稳定的 HIVE作为一种分布式环境下以HDFS为支撑的数据仓库 它同样更多的要求数据是不可变的 然而现实很多任务中 往往需要对数据进行更新操作 经查 Hive自0 11版本
  • 蓝牙模块四大天线方式

    在蓝牙产品中 天线与蓝牙模块的关系是相辅相成的 是一个除了作为核心的系统芯片外 天线是另一个具有影响蓝牙模块传输特性的关键性组件 首先简单概述什么是天线 天线是一种用来发送或者接收电磁波的器件 天线的作用 发射天线的作用是将发射机的高频电流
  • flex布局导致ellispsis失效

    问题描述 之前的文本超过长度省略文章中 讲到了如何通过CSS控制文本超过长度省略 但是在flex布局中 ellispis却失效了 举例说明 文档结构如下 div class container div class div 1 div div
  • 【Java 实现微信支付、Native 支付流程】,从编写代码到支付成功,一步到位!

    文章目录 1 项目环境介绍 2 微信支付文档 2 1 业务流程说明 3 准备信息 3 1 微信公众账号如何获取 3 2 商户号如何获取 3 3 API密钥如何获取 3 4 准备工具类 4 进入开发阶段 4 1 后端编写 生成微信支付二维码
  • 网格搜索(Grid Search)/超参搜索

    1 网格搜索法 网格搜索法 Grid Search 是一种在机器学习中用于确定最佳模型超参数的方法之一 在机器学习中 超参数是指在训练模型之前需要手动设置的参数 而不是通过学习过程中自动学习得到的参数 网格搜索法通过指定一个超参数的候选值列
  • softmax(三):softmax交叉熵的缺点

    还是废话不说 直接上峰神的链接 Softmax理解之Smooth程度控制 softmax交叉熵我们经常使用 但是为啥有的任务 用softmax交叉熵效果很好 有的任务用效果却不怎么样 在实际项目中 分析softmax交叉熵的缺点 才能知道
  • Activity MQ生产/消费和订阅/发布的区别

    1 在有多个消息接收者时 生产 消费模式下多个消费者会轮流消费队列中的消息 2 而订阅 发布模式下所有订阅者都会得到所有的消息 1 生产和消费 生产者生产消息放到队列里 多个消费者同时监听队列 谁先抢到消息谁就会从队列中取走消息 即对于每个
  • any_value()

    目录 any value ONLY FULL GROUP BY 查看ONLY FULL GROUP BY 解决方法 any value ONLY FULL GROUP BY MySQL5 7之后 sql mode中ONLY FULL GRO
  • gfortran版本

    gcc里面已经集成了gfortran吧
  • JDBC ResultSet获取Date类型相关

    前段时间发现用自己写的工具类获取数据库信息的时候 使用getString来获取数据库date类型的数据时 获取的格式为 yyyy mm dd hh mi ss z精度会一直到毫秒 这个实在是郁闷 而使用getDate来获取 则是只有日期没有
  • 【数据结构】动图详解二叉树——堆及堆排序

    需要云服务器等云产品来学习Linux的同学可以移步 gt 腾讯云 lt gt 阿里云 lt gt 华为云 lt 官网 轻量型云服务器低至112元 年 新用户首次下单享超低折扣 目录 一 树的概念 1 树的特征 2 树的相关名词 二 树的表示
  • 抗锯齿相关技术介绍:MSAA、FXAA、SMAA、TXAA、MSAA

    在图像处理中 锯齿一直是一个大问题 因此图像中的抗锯齿 Anti aliaing 简称AA 也被称为边缘柔化 消除混叠 抗图像折叠有损等 AA主要是处理图像有锯齿的边缘 使其图像更清晰清晰 下面有一些反锯齿的常用技术 一 多重采样抗锯齿 M
  • 36 KVM管理设备-配置虚拟串口

    文章目录 36 KVM管理设备 配置虚拟串口 36 1 概述 36 2 操作步骤 36 KVM管理设备 配置虚拟串口 36 1 概述 在虚拟化环境下 由于管理和业务的需求 虚拟机与宿主机需要互相通信 但在云管理系统复杂的网络架构下 运行在管
  • DOM(文档对象模型)

    目录 1 DOM是什么 2 DOM 树 3 节点 4 获取元素 4 1 根据id获取 4 2 根据标签名获取 4 3 根据 name 属性来获取 4 4 根据类名来获取 4 5 根据选择器获取 4 6 获取body元素 4 7 获取html
  • html给百度富文本编辑器editor设置默认值,设置固定高度

    通常在一些文章编辑或者内容编辑的应用场景下会用到百度编辑器设置默认值进行回显 百度到的问题代码 UE getEditor editor setHeight 500 UE getEditor editor setContent 内容 执行完浏
  • Linux系列之:9秒钟掌握多种实时查询日志的方法,再也不用cat命令了。

    实时查询日志 1 引言 2 less 3 tail 3 1 单文件实时查询 3 2 多文件实时查询 3 3 目标名称查询 3 4 跟踪日志 4 multitail 4 1 安装 4 2 用法 5 总结 1 引言 由于最近从某些企业毕业的同学