【问题标题】:Bash script log file display to screen continuouslyBash 脚本日志文件连续显示到屏幕上
【发布时间】:2011-09-02 21:13:02
【问题描述】:

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

例如,假设我想将apache/error.log 的运行日志推送到屏幕(ssh 终端)不断更新。

【问题讨论】:

标签: linux bash logging


【解决方案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 = 一百万种给同一只猫换皮的方法 :) 谢谢
    猜你喜欢
    • 1970-01-01
    • 2011-04-11
    • 1970-01-01
    • 1970-01-01
    • 2011-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-29
    相关资源
    最近更新 更多