Bash 脚本日志文件连续显示到屏幕上
Posted
技术标签:
【中文标题】Bash 脚本日志文件连续显示到屏幕上【英文标题】:Bash script log file display to screen continuously 【发布时间】:2011-09-02 21:13:02 【问题描述】:我正在创建一个写入日志文件的应用程序,我需要知道如何在 Linux / Bash 中将日志文件连续显示到屏幕上(在日志中添加每一行更新屏幕)。
例如,假设我想将apache/error.log
的运行日志推送到屏幕(ssh 终端)不断更新。
【问题讨论】:
unix.stackexchange.com/questions/45626/… 【参考方案1】:试试tail命令:
tail -f filename
【讨论】:
vu 现在我觉得自己像个白痴。我一直使用 tail 命令(只是不使用 -f 参数)。 man tail 本来是我的朋友。谢谢,正是我想要的!允许时会接受答案(9 分钟) vu 这比写脚本还要好:)(虽然我想也可以添加到脚本中) 使用--follow=name
选项,即使文件已被 cron 作业旋转/重新创建,您也可以确保显示日志文件的内容。
@aaron 只是一个注释,因为您提到您正在创建应用程序,然后计划跟踪日志,请注意理解,仅仅因为您在应用程序中写了一行并不意味着由于输出可能被缓冲,该行已显示在日志中。【参考方案2】:
ssh remotehost tail -n0f logfile
这会给你一开始的零行,并连续打印文件中出现的任何新行。
【讨论】:
【参考方案3】:另一种解决方案是
less +F filename
或者只是 less filename
并在其中输入“F”(按 shift+f)。它可能比tail
更好,因为它允许您暂时取消连续打印,向后查看并使用“F”重新启用它(shift+f)再次
【讨论】:
我在做笔记,这是个不错的选择! 另外,它可以使用-S
标志为您截断长行开箱即用,同时允许您向左/向右滚动它们。优于tail -f file.log | cut ...
方法。
我不明白组合键。先按F
然后按Shift
?还是同时按下?我试过了,但没有任何区别。
becko,谢谢,只需键入“F”(Shift + F) - 按住 Shift,然后按 f,然后松开两个键。编辑了我的答案。【参考方案4】:
您还可以:
less filename.txt
and press 'F'
有一个优点 - 您可以随时 CTRL-C 并在日志中向后滚动并使用“F”重新开始观看。
【讨论】:
我对这些问题的响应时间感到非常惊讶,我尝试回答几个问题,这里有很多人在刷新按钮上的速度比我快 :) 感谢您的回答/提示还有【参考方案5】:watch 命令也可以使用。
watch tail logfile
会显示日志文件的最后 5 行。它可以扩展到任何将内容打印到标准输出的命令。
是的,使用 tail -f
是传统的解决方案,但根据您要执行的操作,这可能会更好。
【讨论】:
更多笔记。 Linux = 一百万种给同一只猫换皮的方法 :) 谢谢以上是关于Bash 脚本日志文件连续显示到屏幕上的主要内容,如果未能解决你的问题,请参考以下文章