【发布时间】:2011-09-02 21:13:02
【问题描述】:
我正在创建一个写入日志文件的应用程序,我需要知道如何在 Linux / Bash 中将日志文件连续显示到屏幕上(在日志中添加每一行更新屏幕)。
例如,假设我想将apache/error.log 的运行日志推送到屏幕(ssh 终端)不断更新。
【问题讨论】:
我正在创建一个写入日志文件的应用程序,我需要知道如何在 Linux / Bash 中将日志文件连续显示到屏幕上(在日志中添加每一行更新屏幕)。
例如,假设我想将apache/error.log 的运行日志推送到屏幕(ssh 终端)不断更新。
【问题讨论】:
试试tail命令:
tail -f filename
【讨论】:
--follow=name 选项,即使文件已被 cron 作业旋转/重新创建,您也可以确保显示日志文件的内容。
ssh {remotehost} tail -n0f {logfile}
这会给你一开始的零行,并连续打印文件中出现的任何新行。
【讨论】:
另一种解决方案是
less +F filename
或者只是 less filename 并在其中输入“F”(按 shift+f)。它可能比tail 更好,因为它允许您暂时取消连续打印,向后查看并使用“F”重新启用它(shift+f)再次
【讨论】:
-S 标志为您截断长行开箱即用,同时允许您向左/向右滚动它们。优于tail -f file.log | cut ... 方法。
F 然后按Shift?还是同时按下?我试过了,但没有任何区别。
您还可以:
less filename.txt
and press 'F'
有一个优点 - 您可以随时 CTRL-C 并在日志中向后滚动并使用“F”重新开始观看。
【讨论】:
watch 命令也可以使用。
watch tail logfile
会显示日志文件的最后 5 行。它可以扩展到任何将内容打印到标准输出的命令。
是的,使用 tail -f 是传统的解决方案,但根据您要执行的操作,这可能会更好。
【讨论】: