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

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

因此,作为一个示例,假设我想将运行中的 apache/error.log日志推送到屏幕(ssh 终端) ,以便不断更新。

51655 次浏览

试试 tail 命令:

tail -f filename

ssh {remotehost} tail -n0f {logfile}

这将在开始时为您提供零行,并连续打印出现在文件中的任何新行。

另一个解决办法是

 less +F filename

或者只是按 less filename键,然后输入“ F”(按 shift + f)。它可以比 tail更好,因为它允许您取消连续打印临时,回过头来看一些东西,并再次使用“ F”(shift + f)重新启用它

你亦可:

less filename.txt
and press 'F'

有一个加号-你可以在任何时候 CTRL-C 和滚动回到日志,并开始与’F’再次观看。

Watch 命令也很有用。

watch tail logfile

将显示日志文件的最后5行。它可以扩展到任何将数据打印到 stdout 的命令。

是的,使用 tail -f是传统的解决方案,但是根据您正在尝试做的事情,这可能会更好。