显示“滚动”日志文件
通过命令行,我有一个我想跟踪的日志文件。
我想要的是,基本上,当更新日志时刷新的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=descriptor
, tail
跟随文件描述符。 此方法允许在重命名时跟踪文件,但在文件旋转时跟踪会停止(使用不同的文件描述符创建新文件)。
当跟随旋转的文件时,使用--follow=name
或-F
参数等于--follow=name --retry
。 这样tail
会定期重新打开文件以克服可能的旋转。
我认为ccze是适合您的工具。
它做着色同样的事情。 您可以查看日志向下滚动,但它更容易阅读,因为行打印颜色(红色错误,等等)。 您可以使用以下内容快速尝试:
tail -f /var/log/syslog | ccze