我试图使用下面的命令来跟踪一个目录下的所有日志文件和它的子目录。
shopt -s globstar
tail -f -n +2 /app/mylogs/**/* | awk '/^==> / {a=substr($0, 5, length-8); next} {print a":"$0}'
而输出结果如下。
/app/mylogs/myapplog10062020.log:Hi this is first line
/app/mylogs/myapplog10062020.log:Hi this is second line
这是很好的,但问题是,当我添加一个新的日志文件下的 /app/mylogs/
awk ' tail
命令。tail
有什么办法可以做到这一点吗?
当你启动你的 tail
进程,你向它传递了一个(固定的)文件列表,尾巴被认为是要跟随的,正如你可以从 尾巴 man页面。这与'find'不同,在后者,你可以在其选项中传递一个文件名模式。进程启动后,在它的选项中可以传递一个文件名模式。tail
没有办法知道你突然想让它也跟着另一个文件。
如果你想拥有这样的功能,你必须为你自己版本的 tail
的服务,例如通过一个要扫描的目录,并定期检查目录内容的变化,或者使用服务,如 通知 以便通过目录变化来通知。