显示“滚动”日志文件

显示“滚动”日志文件

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

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

有没有什么方法可以实现这个目的而不需要编写任何代码?

答案1

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

注意:logrotate 会为其他不执行此操作的程序记录文件。

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

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

答案2

虽然tail这确实是实现这一目的的常用方法,但应该注意,它less具有相同的功能,并且有时更有用。

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

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

使用less这种方法的好处是,如果需要,您可以轻松搜索文件或查看其他区域。例如,我经常对日志文件这样做。

答案3

tail -f something.log

做你想做的事?

答案4

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

它的作用与着色相同。您可以看到日志向下滚动,但这样更容易阅读,因为行是用颜色打印的(错误用红色表示,等等)。您可以使用以下方法快速尝试:

tail -f /var/log/syslog | ccze

相关内容