显示“滚动”日志文件

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

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

有没有什么可以做到这一点,而不必写一些代码?

tail-f选项:

man页:

-f, – follow [= {name | descriptor}]在文件增长时输出附加数据; -f, – follow和–follow = descriptor是等价的

因此,如果您输入:

tail -f [path_and_name_of_logfile] – 您将在附加日志文件本身时看到终端中的输出。

NB [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)并重新开始。

NB logrotate执行此操作来记录其他不自行执行的程序的文件。

tail -f将在重命名后继续跟随旧文件。

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

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

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

您也可以使用+F选项启动less ,在这种情况下,它将以该模式启动 。 一般来说, +可用于将“键盘命令”设置为less ,它将在启动时执行。

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

是否

 tail -f something.log 

做你想要的?

tail有两个实现可以跟随并输出附加到文件的数据

  • 按照文件描述符
  • 按照具有特定名称的文件

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

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

我认为ccze是适合您的工具。

它做着色同样的事情。 您可以查看日志向下滚动,但它更容易阅读,因为行打印颜色(红色错误,等等)。 您可以使用以下内容快速尝试:

 tail -f /var/log/syslog | ccze