在Linux中动态查看日志文件


73

我在Linux中有一个.csv格式的日志文件,该文件正在不断更新。我要查看正在更新的日志文件。是否有任何Linux命令可以做到这一点?


7
这实际上是属于serverfault的。
richo 2010年

Answers:



76

正如其他人指出的,这是最常见的解决方案。问题在于结果只是滚动,除非终端支持它并且终端中缓冲了足够的行,否则您将无法返回并搜索它们。tail -f file

我不喜欢的一种不为人知的解决方案是使用less; 如果您键入Shift-F时使用查看文件less,它将像在文件末尾一样开始tail -f。或者,您可以从启动lessless +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


4
less +F会自动进入尾尾模式,并且less --follow-name会像tail -F。我发现这些功能非常有用:-)
短暂

嗯谢谢 我不知道命令行开关。
布莱恩·坎贝尔

4
奖励:如果您搜索(/)的内容较少,然后进入尾部模式(F),则会突出显示输入行中的匹配项。
贝尼·切尔尼亚夫斯基-帕斯金


11

万一您想监视多个文件,可以使用一个不错的工具multitail,它可以合并两个或更多文件的输出并实时跟踪它们。multitail还可以让您在受监视的文件中来回导航。


为+1以外的事物+1tail -f
Noufal Ibrahim 2010年


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

-S 将停止烦人的换行。

-# 4 将水平滚动步骤设置为四列,而不是默认的一半屏幕。

按结束键以刷新。


抱歉,忘记检查问题是否仍然有效。
Oskar Skog

别后悔,这超级有帮助。我添加+F到此文件中,并在日志文件监视器中获得了所需的一切
Alex Reinking

0

尾-lf logfile.csv。

如果登录到GUI,则可以使用鼠标垫动态查看日志。


0

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

要求您运行Java应用程序服务器,将vsConsole部署到该服务器上,并在包含日志的服务器上运行代理-因此,我猜测它的解决方案比您这里需要的解决方案更为繁重。(对于只想单击日志文件而不是ssh,cd,tail等的日志文件的开发人员/测试团队来说,这很有用)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.