我有一个 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