我在Linux中有一个.csv格式的日志文件,该文件正在不断更新。我要查看正在更新的日志文件。是否有任何Linux命令可以做到这一点?
Answers:
正如其他人指出的,这是最常见的解决方案。问题在于结果只是滚动,除非终端支持它并且终端中缓冲了足够的行,否则您将无法返回并搜索它们。tail -f file
我不喜欢的一种不为人知的解决方案是使用less
; 如果您键入Shift-F时使用查看文件less
,它将像在文件末尾一样开始tail -f
。或者,您可以从启动less
时less +F
进入此模式开始。您可以随时输入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
。我发现这些功能非常有用:-)
/
)的内容较少,然后进入尾部模式(F
),则会突出显示输入行中的匹配项。
万一您想监视多个文件,可以使用一个不错的工具multitail,它可以合并两个或更多文件的输出并实时跟踪它们。multitail还可以让您在受监视的文件中来回导航。
tail -f
less -S '-#' 4 /var/log/logfile
-S
将停止烦人的换行。
-#
4
将水平滚动步骤设置为四列,而不是默认的一半屏幕。
按结束键以刷新。
+F
到此文件中,并在日志文件监视器中获得了所需的一切
如果您希望通过Web应用程序监视日志,则vsConsole FileView可能会有所帮助。请参阅http://demo.vamonossoftware.com/上的演示
要求您运行Java应用程序服务器,将vsConsole部署到该服务器上,并在包含日志的服务器上运行代理-因此,我猜测它的解决方案比您这里需要的解决方案更为繁重。(对于只想单击日志文件而不是ssh,cd,tail等的日志文件的开发人员/测试团队来说,这很有用)