显示“滚动”日志文件


28

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

我想要的基本上tail是在更新日志时刷新,使文本随着新行添加到日志文件而向上滚动。

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

Answers:


35

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有这个选择。您会得到额外信息的支票。
WernerCD 2011年

顺便说一句,那里还有一些很棒的脚本可以使拖尾日志变色。我想到的一个例子是colorize.pl,您可以通过在colorize脚本中使用它来实现此目的。例如:tail -f / var / log / messages | /home/me/colorize.pl
lazyPower 2011年

@lazyPower也不错。我将不得不对此进行修改,尽管我认为在当前情况下它不会超级有用。
WernerCD 2011年

18

虽然tail肯定是通常的方式做到这一点,应该指出的是,less具有相同的特点,就是有时更多有用的。

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

您还可以启动less+F选择,在这种情况下,将启动该模式。一般来说,+可用于提供less启动时将执行的“键盘命令” 。

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


从未听说过“跟随”(更多,更少,尾巴,猫)。很高兴知道的东西。
WernerCD 2011年

1
同意 我更喜欢少。当您发现有趣的内容时,Ctrl-C将停止滚动,然后b向前滚动或f向前滚动和/或?向前或向后搜索。g将把您带到文件的开头,而G将带到文件的结尾。您需要的一切。
马丁·陶


4

tail 有两个要遵循的实现,并输出附加到文件的数据

  • 遵循文件描述符
  • 跟随具有特定名称的文件

使用参数-f--follow--follow=descriptortail紧随文件描述符。此方法允许在重命名过程中跟踪文件,但是在旋转文件时会停止跟踪(使用其他文件描述符创建新文件)。

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


1

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

它执行相同的着色操作。您可以看到日志向下滚动,但更容易阅读,因为行以彩色打印(红色错误,依此类推)。您可以使用以下类似方法快速尝试:

tail -f /var/log/syslog | ccze
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.