当前位置: 首页>>技术教程>>正文


显示“scrolling”日志文件

,

问题描述

通过命令行,我有一个想要跟踪的日志文件。

我想要的基本上是具有tail,该tail在更新日志时刷新,使文本向上滚动,因为新行添加到了日志文件中。

有没有不需要写一些代码就能做到的事情?

最佳方法

tail具有-f选项:

man页面:

-f, –follow[={name|descriptor}] output appended data as the file grows; -f, –follow, and –follow=descriptor are equivalent

因此,如果您键入:

tail -f [path_and_name_of_logfile]-您将在终端中看到输出,因为日志文件本身已附加到该输出。

N.B. [path_and_name_of_logfile]是参数,因此举一个例子:

tail -f /var/log/messages

如果与-n [number_of_lines]选项结合使用,则可以从文件的最后[number_of_lines]行开始输出-例如

tail -n 10 -f /var/log/Xorg.0.log


某些程序会定期更改其日志文件,将旧文件移到新名称(例如log.0)并重新开始。

N.B. logrotate这样做是为了记录其他自己不执行的程序的文件。

重命名后,tail -f将继续遵循旧文件。

tail -F将按名称跟随文件,因此将切换为跟随新文件。

次佳方法

虽然tail当然是执行此操作的常用方法,但应注意,less具有相同的功能,有时更有用。

如果您使用less打开文件,则可以按Shift + F使文件跟随文件(即,它将显示新行,就像tail -f一样)。您可以使用Ctrl + C退出此模式

您也可以使用+F选项启动less,在这种情况下它将以该模式启动。一般来说,+可用于将”keyboard-commands”交给less,它将在启动时执行。

为此,使用less的优点是,如果需要,您可以轻松地搜索文件或查看其他区域。例如,我经常使用日志文件来完成此操作。

第三种方法

是否

tail -f something.log

你想做什么?

第四种方法

tail具有两个实现,可以跟踪和输出附加到文件的数据

  • 遵循文件描述符

  • 跟随具有特定名称的文件

对于参数-f--follow--follow=descriptortail遵循文件描述符。此方法允许在重命名过程中跟踪文件,但是在旋转文件时会停止跟踪(使用不同的文件描述符创建新文件)。

当跟随旋转的文件时,请使用--follow=name或等于--follow=name --retry-F参数。这样,tail将定期重新打开文件以克服可能的旋转。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/8459.html,未经允许,请勿转载。