当前位置: 首页 > news >正文

Linux系统中实时查看日志

在Linux中查看文件可以使用cat或者less命令,查看静态文件这种方式是可以的。对于动态文件,其内容会随时变化,要检测日志文件需要实时获取其内容。本文将介绍一些可以实时查看日志文件的命令和方法。

一. 使用tail命令

1. tail-f

tail命令用于查看文件末尾的内容,使用-f可以跟踪文件末尾的内容,这就意味着它会持续显示被加入到新文件中的内容。

tail -f /var/log/syslog#举例:
$ sudo tail -f /var/log/apache2/access.log
  • -f会持续显示文件新增内容

要停止跟踪日志文件,可以使用CTRL+C。

2. 结合grep命令过滤关键信息‌

tail 命令可以实时查看文件内容的变化。但是,当文件内容更新特别快速的时候,刚刚更新的内容一闪而过,这种情况下,查看起来就不那么方便了。

为了解决这个问题,可以将 tail 和 grep 命令结合起来使用。

tail -f /var/log/syslog | grep "error"

使用 grep 展示搜索词,显示的信息比较有限,它只显示检索结果,因此可以使用 -C 选项来显示检索结果的前后几行:

tail -f /var/log/syslog | grep -C 3 "keywords"
3. 使用tail -F参数

通常 Linux 服务器上的日志都是轮转日志。这种情况下,你需要用 -F 参数。

tail -F 会监控是否创建了新日志(所谓新日志指的是同一个名字,但是 fd 不一样的日志文件),并且会转而显示新日志的内容,而不是老文件的内容。

tail -F /var/log/apache2/access.log
  • 默认情况下只显示后10行内容,可使用-n-f选择后几行
#查看后两行
$ sudo tail -n2 -f /var/log/apache2/access.log
4. 使用tailf命令

tailf命令本身内建了-f参数

tailf /var/log/apache2/access.log

二. less命令

less 命令多用于读取文本文件,也可用于读取实时被更改的文件。

可以用 less 命令 查看日志文件,然后按下 Shift+F 实时查看日志内容。 less 中按下 Shift+F 会追踪文件末尾的内容。

也可以在调用 less 命令时就加上 +F 参数。

less +F /var/log/apache2/access.log

上述命令会打开日志文件,并实时显示正在写入的更改。

按 ctrl +c 中断显示,按 q 会退出视图。

三. 使用multitail命令

如果需要同时监控多个日志文件,可以使用multitail命令。这个命令可以同时查看和比较多个日志文件的内容。

multitail 可以在拆分视图中显示文件,甚至可以在不同的行和列中显示不同的文件。

multitail /var/log/apache2/access.log /var/log/apache2/error.log

默认情况下multitail 的工作方式与 tail -f 相同,它显示最后100行,然后进入实时监视视图;另外,它按行来拆分视图。

可以按 b 键打开一个文件选择窗口,选择某个日志文件查看,以做进一步分析。

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

multitail -s 2 log_file1 log_file2

按 q 键可退出 multitail 所有的视图。

注意:multitail 在大多数Linux系统中没有被默认安装,所以在使用前需要先手动安装。

http://www.xdnf.cn/news/641017.html

相关文章:

  • Unity3D仿星露谷物语开发50之初始化农作物
  • day27:零基础学嵌入式之进程
  • Docker镜像存储路径迁移指南(解决磁盘空间不足问题)
  • Nginx安全防护
  • 基于Python Anaconda环境,使用CNN-LSTM模型预测碳交易价格的完整技术方案
  • 大模型与训练与微调
  • Java基础 Day20
  • 嵌入式自学第二十七天
  • ST表——算法的优化
  • TCP 和 UDP 的区别
  • 电梯调度算法详解与Python实现
  • 页表:从虚拟内存到物理内存的转换
  • C语言初阶--操作符
  • 消息队列kafka的基础概念和部署
  • C#、C++、Java、Python 选择哪个好
  • TCP 的三次握手
  • Python Day32 学习
  • 十二、【鸿蒙 NEXT】如何使用系统api实现视频压缩
  • 电子电路:电学都有哪些核心概念?
  • Oracle控制文件损坏恢复方案
  • dify_plugin数据库中的表总结
  • threejs几何体BufferGeometry顶点
  • 【报错】Error attempting to get column ‘created_time‘ from result set.解决方法
  • 手撕string类
  • 汉诺塔超级计算机堆栈区与数据区的协同
  • Docker(零):本文为 “Docker系列” 有关博文的简介和目录
  • Docker核心笔记
  • JavaWeb:SpringBoot配置优先级详解
  • 互联网大厂Java求职面试:AI应用集成中的RAG系统优化与向量数据库性能调优实战
  • 英语科研词汇的困境与汉语的崛起之光