使用 multitail 监视文件,即使它尚未创建

使用 multitail 监视文件,即使它尚未创建

我有一个 MapServer 日志文件;它是在 中创建的/tmp/mapserv.log,但显然它会在每次重新启动时刷新,并且仅在发生可记录事件时创建。

我已经在使用 Multitail,但现在我需要监视文件夹/tmp中是否有尚未创建的文件,等待它出现。

有什么提示吗?

答案1

您也许可以使用该-iw选项。它以给定的时间间隔检查与给定模式匹配的新文件。一旦发现,就开始跟踪它。

例如:

multitail -iw /tmp/mapserv.log 2

/tmp/mapserv.log每 2 秒查找一次文件。如果出现并且当它出现时请遵循它。

它的目的是采用通配符,如

-iw "/tmp/map*" 2 
# Quotes needed to prevent the shell to expand the pattern.

但也适用于非通配符。该数字是检查与模式匹配的新文件的频率。


否则,touch也许可以工作。触摸后可能需要类似的东西su user -c 'touch ...'chown

如果 MapServermapserv.log在第一次记录时删除现有的并且不截断或追加,您可能还需要该-f选项,如下所示:

遵循以下文件名,而不是描述符。

答案2

这是一个 OOOOLLLLD 问题,但最佳答案已更改:

--retry-all像这样使用开关:

multitail --retry-all file1.log file2.log [...]

你应该看到手册页了解完整的详细信息,但简而言之,之后的所有文件都会像/开关--retry-all一样重试。tail-F--retry

相关内容