实时查看或监控日志文件的 4 种方法
如何在 Linux 中实时查看日志文件的内容?有很多实用程序可以帮助用户在文件更改或不断更新时输出文件内容。在 Linux 中,用于实时显示文件内容的最知名和最常用的实用程序之一是 tail 命令(有效管理文件)。
另请参阅:4 个适用于 Linux 的优秀开源日志监控和管理工具
1. tail 命令 - 实时监控日志
如上所述,tail 命令是实时显示日志文件的最常见解决方案。但是,显示文件的命令有两个版本,如下例所示。
在第一个例子中,命令tail需要-f
参数来跟踪文件的内容。
$ sudo tail -f /var/log/apache2/access.log
该命令的第二个版本实际上是一个命令本身:tailf。您不需要使用-f
开关,因为该命令内置有参数-f
。
$ sudo tailf /var/log/apache2/access.log
通常,日志文件在 Linux 服务器上由 logrotate 实用程序频繁轮换。要查看每天轮换的日志文件,您可以使用tail 命令-F
的标志。
另请参阅:如何在 Linux 中管理系统日志(配置、轮换和导入数据库)
将会tail -F
跟踪是否创建了新的日志文件并且会开始跟踪新文件而不是旧文件。
$ sudo tail -F /var/log/apache2/access.log
但是,默认情况下,tail 命令将显示文件的最后10行。例如,如果您只想实时查看日志文件的最后两行,请使用 file-n
和 flag 组合-f
,如下例所示。
$ sudo tail -n2 -f /var/log/apache2/access.log
2. Multitail 命令 – 实时监控多个日志文件
另一个有趣的实时显示日志文件的命令是multitail 命令。该命令的名称暗示multitail 实用程序可以实时监视和跟踪多个文件。Multitail 还允许您在受监视的文件中来回导航。
要在基于 Debian 和 RedHat 的系统中安装mulitail 实用程序,请发出以下命令。
$ sudo apt install multitail [On Debian & Ubuntu] $ sudo yum install multitail [On RedHat & CentOS] $ sudo dnf install multitail [On Fedora 22+ version]
要同时显示两个日志文件的输出,请执行如下例所示的命令。
$ sudo multitail /var/log/apache2/access.log /var/log/apache2/error.log
3. lnav 命令 – 实时监控多个日志文件
另一个有趣的命令,与multitail 命令类似,是lnav 命令。Lnav实用程序还可以监视和跟踪多个文件并实时显示其内容。
通过发出以下命令在基于 Debian 和 RedHat 的 Linux 发行版中安装 lnav 实用程序。
$ sudo apt install lnav [On Debian & Ubuntu] $ sudo yum install lnav [On RedHat & CentOS] $ sudo dnf install lnav [On Fedora 22+ version]
通过发出如下例所示的命令来同时查看两个日志文件的内容。
$ sudo lnav /var/log/apache2/access.log /var/log/apache2/error.log
4. less 命令 - 显示日志文件的实时输出
最后,如果您键入,您可以使用less 命令显示文件的实时输出Shift+F
。
与tail 实用程序一样,在lessShift+F
中按下打开的文件将从文件末尾开始。或者,您也可以使用 less标志启动 less 以进入实时查看文件。+F
$ sudo less +F /var/log/apache2/access.log
就是这样!您可以阅读以下有关日志监控和管理的文章。
- 在 Linux 中使用 head、tail 和 cat 命令有效管理文件
- 如何在 Linux 中使用 Logrotate 设置和管理日志轮换
- Petiti – 面向 Linux 系统管理员的开源日志分析工具
- 如何在 CentOS/RHEL 上使用 ausearch 工具查询审计日志
- 使用 Journalctl 管理 Systemd 下的日志消息 [综合指南]
在本文中,我们展示了如何在 Linux 终端上实时查看日志文件中附加的数据。您可以通过下面的评论表提出任何问题或分享您对本指南的想法。