Bash脚本日志文件连续显示到屏幕

Aar*_*ray 70 linux bash logging

我正在创建一个写入日志文件的应用程序,我需要知道在Linux/Bash中如何连续地将日志文件显示到屏幕上(用每个新行放入日志来更新屏幕).

举个例子,假设我想将一个正在运行的日志推apache/error.log送到屏幕(ssh终端)不断更新.

Hai*_* Vu 101

尝试tail命令:

tail -f filename
Run Code Online (Sandbox Code Playgroud)

  • vu现在我觉得自己像个白痴.我一直使用tail命令,(只是不使用-f参数).男人的尾巴会是我的朋友.谢谢,正是我在寻找!! 允许时会接受答案(9分钟) (2认同)
  • 使用选项`--follow = name`,即使文件已由cron作业旋转/重新创建,您仍将确保显示日志文件的内容. (2认同)
  • @aaron只是注意,因为你提到你正在创建应用程序,然后计划尾随日志,只是要小心理解,因为你在应用程序中写了一行并不意味着行已经出现在日志中因为输出可以被缓冲. (2认同)

osg*_*sgx 26

另一个解决方案是

 less +F filename
Run Code Online (Sandbox Code Playgroud)

或者只是在less filename其中键入"F"(按shift+ f).它可以更好tail,因为它允许你暂时取消连续打印,向后看东西并再次用"F"(shift+ f)重新启用它


Set*_*son 11

watch命令也可以使用.

watch tail logfile
Run Code Online (Sandbox Code Playgroud)

会显示日志文件的最后5行.它可以扩展到任何将东西打印到stdout的命令.

是的,使用tail -f是传统的解决方案,但根据您的尝试,这可能会更好.


buk*_*zor 6

ssh {remotehost} tail -n0f {logfile}

这将最初为您提供零线,并连续打印文件中出现的任何新行.


jm6*_*666 6

你也可以:

less filename.txt
and press 'F'
Run Code Online (Sandbox Code Playgroud)

有一个加号 - 您可以随时CTRL-C并在日志中向后滚动并再次使用'F'开始观看.

  • 我对问题的响应时间感到非常惊讶,我尝试回答了几个问题,这里有很多人比我更快地刷新按钮:)也感谢您的回答/提示 (2认同)