在 Linux 中动态查看日志文件 [关闭]
Posted
技术标签:
【中文标题】在 Linux 中动态查看日志文件 [关闭]【英文标题】:View a log file in Linux dynamically [closed] 【发布时间】:2011-01-07 03:14:28 【问题描述】:我在 Linux 中有一个 .csv 格式的日志文件,该文件正在不断更新。 我想在更新日志文件时查看它。是否有任何 Linux 命令可以做到这一点?
【问题讨论】:
这确实属于服务器故障。 【参考方案1】:tail -f yourlog.csv
新添加的行会不断显示。
【讨论】:
【参考方案2】:正如其他人指出的那样,tail -f <i>file</i>
是最常见的解决方案。问题是结果只是滚动,除非您的终端支持它并且您的终端中缓冲了足够的行,否则您无法返回并搜索它们。
我喜欢的一个鲜为人知的解决方案是使用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
也以这种方式运行。
(感谢 ehemient 在less +F
和less --follow-name
上的提示)
【讨论】:
less +F
将自动进入跟随模式,less --follow-name
将更像tail -F
。我发现这些非常有用:-)
啊,谢谢。我不知道命令行开关。
奖励:如果你在 less 中搜索 (/
),然后进入尾部模式 (F
),它将突出显示传入行中的匹配项。【参考方案3】:
tail -f foo.csv
【讨论】:
【参考方案4】:如果您想监控多个文件,有一个名为multitail 的好工具可以让您合并两个或多个文件的输出并实时跟踪它们。 multitail 还允许您在受监视的文件中来回导航。
【讨论】:
为tail -f
以外的其他内容+1【参考方案5】:
tail -f
和它所有的朋友都是老派。 multitail
看起来更好,但真正烧 CPU 查看日志文件的方法是使用 glTail。
【讨论】:
【参考方案6】:less -S '-#' 4 /var/log/logfile
-S
将停止烦人的换行。
-#
4
会将水平滚动步长设置为四列,而不是默认的半屏。
按结束键刷新。
【讨论】:
抱歉,忘记检查问题是否仍然有效。 别抱歉,这非常有用。我在其中添加了+F
,并在日志文件监视器中得到了我想要的一切【参考方案7】:
tail -lf logfile.csv.
如果您登录到 GUI,您可以使用鼠标垫动态查看日志。
【讨论】:
【参考方案8】:如果您更喜欢通过 Web 应用程序监控日志,vsConsole FileView 可能会有所帮助。 请参阅http://demo.vamonossoftware.com/ 上的演示
要求您运行 java 应用服务器,将 vsConsole 部署到它,并在包含日志的服务器上运行代理 - 所以我猜它是一个比您需要的更重量级的解决方案。 (对于只想点击日志文件而不是 ssh、cd、tail 等的开发/测试团队来说,这很有用)
【讨论】:
以上是关于在 Linux 中动态查看日志文件 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章