使用 multitail 递归显示所有新日志文件

使用 multitail 递归显示所有新日志文件

我正在尝试通过执行以下操作以递归方式获取multitailUbuntu 上(6.0)的tail -f某些目录中的任何日志文件(甚至是新日志文件):

multitail -Q 1 /home/default/storage/accounts/**/*.log

这只会产生一个空白屏幕。

因此我尝试更具体地说明要监控的目录:

multitail -Q 1 /home/default/storage/accounts/1/entries/1/logs/imports/*.log

但即使日志文件发生变化,我也会看到相同的空白屏幕。

我在这里做错了什么?

答案1

对于您要完成的任务,您需要使用参数-Iw而不是-Q。这告诉 multitail 跟踪现有文件(全部在一个窗口中),以及监视新文件并跟踪它们(也在同一窗口中)。通配符模式后面的“1”指定每秒监视新文件。您还需要在路径周围添加引号以防止 shell 扩展它们,因此您最终得到:

multitail -Iw "/home/default/storage/accounts/**/*.log" 1

答案2

我不知道你的../**/..语法是否有效,我找不到任何与 multitail 相关的文档。但是,关于该选项multitail -h有以下说明:-q

可以在此输入 shell 能够识别的路径。例如“/tmp/*”。

那么,这可能取决于你的 shell?在 bash 下使用 multitail,只要你有一个固定的递归深度,你就可以替换路径中的多个目录名称,每个目录名称都用一个 替换*。此方法已经过测试并且有效:

multitail -Iw /home/default/storage/accounts/*/entries/*/logs/imports/*.log 1

相关内容