我在Linux上有一个以.csv格式记录并不断更新的日志文件。我希望能够实时查看该日志文件,是否有任何Linux命令可以实现此功能?
答案:使用tail命令加上-f参数可以实现实时查看正在更新的日志文件。命令示例:`tail -f logfile.csv`tail -f yourlog.csv
实时显示日志文件的新增内容。
正如其他人所指出的,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 +F
和less --follow-name
提示)
less +F
命令会自动进入跟随并输出末尾的模式,而 less --follow-name
命令则更像是 tail -F
。我发现它们非常有用 :-) - ephemient/
)某些内容,然后进入尾部模式(F
),它将在输入行中突出显示匹配项。 - Beni Cherniavsky-Paskintail -f foo.csv
如果你想同时监控多个文件,有一个很好用的工具叫做multitail,它可以合并两个或多个文件的输出,并实时跟踪它们。multitail还可以让你在被监控的文件中前后导航。
tail -f
之外,还有其他方法可以实现类似的功能。 - Noufal Ibrahimless -S '-#' 4 /var/log/logfile
-S
选项可以避免令人烦恼的行折叠。
-#
4
选项会将水平滚动步长设置为四列,而不是默认的半屏。
按下End键以刷新。
+F
到这里并在日志文件监视器中得到了我想要的一切。 - Alex Reinkingtail -lf logfile.csv.
如果您登录了GUI界面,可以使用mousepad动态查看日志。
如果您喜欢通过Web应用程序监视日志,则vsConsole FileView可能会有所帮助。 请参见演示:http://demo.vamonossoftware.com/
需要运行Java应用服务器,将vsConsole部署到其中,并在包含日志的服务器上运行代理-因此我猜它比您在这里需要的解决方案更加重量级。(对于只想单击日志文件查看而不是ssh、cd、tail等的开发/测试团队来说,这很好)