在Linux中动态查看日志文件

83

我在Linux上有一个以.csv格式记录并不断更新的日志文件。我希望能够实时查看该日志文件,是否有任何Linux命令可以实现此功能?

答案:使用tail命令加上-f参数可以实现实时查看正在更新的日志文件。命令示例:`tail -f logfile.csv`

7
这段话最好放在ServerFault上讨论。 - richo
8个回答

134

tail -f yourlog.csv

实时显示日志文件的新增内容。


78

正如其他人所指出的,tail -f 文件名是最常见的解决方案。问题在于结果只是不断滚动显示过去,如果您的终端支持并且终端缓冲区足够大,您才能回溯搜索它们。

我喜欢的另一个不太为人知的解决方案是使用less;如果您在使用less查看文件时键入Shift-F,它将开始跟踪文件末尾,就像使用tail -f一样。或者,您可以使用less +F启动less以进入此模式。随时,您可以键入Ctrl-C停止跟踪文件,然后像普通使用less一样翻页、搜索使用/。如果日志中有有趣的内容却滚动超出屏幕,或者您想稍后回头检查可能会错过的内容,这样做非常有帮助。搜索完毕后,请再次按下Shift-F以重新跟踪文件。

multitail看起来是一个很好的解决方案,用于在单独窗口中跟踪多个文件; 如果您使用tail -f查看多个文件,则它们将相互交错显示(具有头部以区分它们),这可能不是您希望观看它们的方式。

tail -F(大写的-F,而不是小写的-f)是一个非标准的标志(可在Linux、Cygwin、MacOS X、FreeBSD和NetBSD上使用),可以更好地观察经常会轮换的日志文件;通常一个进程会重命名一个日志文件,然后在原来的位置创建一个新的日志文件,以避免任何一个日志文件变得太大。tail -f将继续跟踪旧文件,即已不再是活动日志文件,而tail -F将等待新文件被创建,并开始跟踪该文件。如果您在使用less来跟踪文件,则可以使用--follow-name标志使less也按此方式操作。

(感谢ephemient提供的less +Fless --follow-name提示)


4
less +F 命令会自动进入跟随并输出末尾的模式,而 less --follow-name 命令则更像是 tail -F。我发现它们非常有用 :-) - ephemient
啊,谢谢。我之前不知道有命令行开关。 - Brian Campbell
4
奖励提示:如果您在Less中搜索(/)某些内容,然后进入尾部模式(F),它将在输入行中突出显示匹配项。 - Beni Cherniavsky-Paskin

11

tail -f foo.csv


11

如果你想同时监控多个文件,有一个很好用的工具叫做multitail,它可以合并两个或多个文件的输出,并实时跟踪它们。multitail还可以让你在被监控的文件中前后导航。


除了 tail -f 之外,还有其他方法可以实现类似的功能。 - Noufal Ibrahim

9

tail -f和所有类似命令已经有些过时了。multitail看起来更好一些,但是用glTail真正能让你的CPU飙升。


5
less -S '-#' 4 /var/log/logfile

-S选项可以避免令人烦恼的行折叠。

-# 4选项会将水平滚动步长设置为四列,而不是默认的半屏。

按下End键以刷新。


抱歉,忘记检查问题是否仍然有效。 - Oskar Skog
不要抱歉,这非常有帮助。我添加了 +F 到这里并在日志文件监视器中得到了我想要的一切。 - Alex Reinking

0

tail -lf logfile.csv.

如果您登录了GUI界面,可以使用mousepad动态查看日志。


0

如果您喜欢通过Web应用程序监视日志,则vsConsole FileView可能会有所帮助。 请参见演示:http://demo.vamonossoftware.com/

需要运行Java应用服务器,将vsConsole部署到其中,并在包含日志的服务器上运行代理-因此我猜它比您在这里需要的解决方案更加重量级。(对于只想单击日志文件查看而不是ssh、cd、tail等的开发/测试团队来说,这很好)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接