如何仅监视日志文件的最后 n 行?

Mar*_*eux 137 logs monitoring tail

我有,我想显示一个不断增长的日志文件,只有最后的15行。这是我知道我可以做的:

tail -n 15 -F mylogfile.txt
Run Code Online (Sandbox Code Playgroud)

当日志文件被填满时,tail将最后几行附加到显示中。

我正在寻找一种解决方案,它只显示最后 15 行,并在更新后删除最后 15 行之前的行。你有什么想法吗?

Wil*_*ell 175

使用 watch 可能就足够了:

$ watch tail -n 15 mylogfile.txt

  • 请注意,如果文件在两次“watch”更新之间增长超过 15 行,则此解决方案不起作用。您可以使用“-n”来更改此间隔。 (2认同)

小智 30

如果您使用 watch,请尝试-n控制每次更新之间的间隔的选项。

因此,以下将每 2 秒调用一次 tail

$ watch -n 2 tail -n 15 mylogfile.txt
Run Code Online (Sandbox Code Playgroud)

而这个每 1 秒轮询一次

$ watch -n 1 tail -n 15 mylogfile.txt
Run Code Online (Sandbox Code Playgroud)


Nik*_* R. 13

您可以流式传输运行较少的日志文件,然后按 SHIFT + F 将使用较少的文件流式传输文件。 $ less mylogfile.txt 然后只需按 SHIFT + F 即可流式传输。我认为监控更新的日志文件很方便。


mic*_*ber 8

也许你觉得这个-d参数很方便。

man watch
Run Code Online (Sandbox Code Playgroud)

-d 突出显示连续更新之间的差异。Option 将读取更改突出显示为永久的可选参数,允许查看自第一次迭代以来至少更改过一次。