【问题标题】:How to make tail wait for files to be created before tailing them如何让tail在拖尾之前等待文件创建
【发布时间】:2013-06-21 09:56:16
【问题描述】:

我一直在尝试找到一种方法让tail 等待文件被创建,然后开始跟踪它们。

例如,假设我有一个尚未创建的logs 目录,但我的应用程序会创建它。假设我有另一个进程,我想在其中运行 tail -F logs/*.log 并让它在所有文件创建后立即开始跟踪它们。我该怎么做呢?

还有一件事:如果tail 正在拖尾某个被删除的文件,如果它被重新创建,是否有可能让它再次开始拖尾?

【问题讨论】:

  • 谢谢!我看了看并安装了它。我尝试了您提供的链接中的示例,但似乎无法使其正常工作。您介意提供更多解释和示例吗?
  • 那么这个例子发生了什么?
  • 我只是得到一个空控制台。
  • 是的,看来multitail 也不适合我。

标签: linux shell unix tail


【解决方案1】:

有些粗糙,这是可行的:

while inotifywait -q .; do kill $PID; tail -F -n 0 * & PID=$!; done

一旦目录中的任何内容发生更改,tail 命令就会重新启动。

【讨论】:

    【解决方案2】:

    还有一件事:如果 tail 拖尾了某个被删除的文件,如果它被重新创建,是否有可能让它再次开始拖尾?

    当您tailing 一些被截断并重新创建的文件时; tail 命令会自动处理它。您无需为该特定文件重新发出 tail 命令。

    【讨论】:

    • 只有在目录没有被删除的情况下才成立。一旦它被删除,tail 就会报告它并停止在那里寻找更改。如果您的应用程序重新创建文件夹,tail 将继续滚动数据。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-27
    • 1970-01-01
    • 2019-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多