网站搜索

实时观察或监控日志文件的 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

通常,日志文件通过 logrotate 实用程序在 Linux 服务器上频繁轮换。要查看每天轮换的日志文件,您可以使用 tail 命令-F 标志。

另请阅读:如何在 Linux 中管理系统日志(配置、轮换和导入数据库)

tail -F 将跟踪是否创建了新日志文件,并将开始跟踪新文件而不是旧文件。

sudo tail -F /var/log/apache2/access.log

但是,默认情况下,tail 命令 将显示文件的最后 10 行。例如,如果您只想实时查看日志文件的最后两行,请结合使用 -n 文件和 -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命令——显示日志文件的实时输出

最后,如果您键入 Shift+F,则可以使用 less 命令显示文件的实时输出。

tail 实用程序 一样,在 less 中打开的文件中按 Shift+F 将会从文件末尾开始。或者,您也可以使用 less +F 标志开始 less 来进入文件的实时观看。

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

就是这样!您可以阅读以下有关日志监控和管理的文章。

  1. 在 Linux 中使用 head、tail 和 cat 命令有效管理文件
  2. 如何在 Linux 中使用 Logrotate 设置和管理日志轮转
  3. Petiti – 适用于 Linux 系统管理员的开源日志分析工具
  4. 如何在 CentOS/RHEL 上使用“ausearch”工具查询审核日志
  5. 使用 Journalctl 管理 Systemd 下的日志消息 [综合指南]

在本文中,我们展示了如何在 Linux 终端上实时观察日志文件中附加的数据。您可以通过下面的评论表提出任何问题或分享您对本指南的看法。