我正在创建一个写入日志文件的应用程序,需要知道如何在Linux/Bash中不断地将日志文件实时显示在屏幕上(每次新行添加到日志都会更新屏幕)。
例如,假设我想要将运行日志 apache/error.log
不断推送到屏幕(ssh终端),并持续更新。
尝试使用tail命令:
tail -f filename
--follow=name
选项,您可以确保即使日志文件因cron作业的旋转/重新创建而被更改,仍然能够看到日志文件的内容。 - Cédric Julien less +F filename
或者只需使用less filename
命令,并在其中键入“F”(按下shift+f)。它可能比tail
更好,因为它允许你临时取消连续打印,向后查找某些内容,并再次使用"F" (shift+f)重新启用它。
-S
标志轻松截断长行,并允许您在左右滚动时查看它们。这比 tail -f file.log | cut ...
方法更为优越。 - sevkoF
再按下 Shift
吗?还是同时按下它们?我尝试了,但没有任何区别。 - a06ewatch命令也可能会有用。
watch tail logfile
这将展示出日志文件的最后5行。它可以扩展到任何打印内容到标准输出的命令。
是的,使用tail -f
是传统的解决方案,但根据您尝试执行的操作,这可能效果更好。
您还可以:
less filename.txt
and press 'F'
有一个特点 - 你可以随时使用CTRL-C并向后滚动日志,并使用'F'重新开始观看。
ssh {remotehost} tail -n0f {logfile}
。这会一开始显示零行,并持续打印出现在文件中的任何新行。