tail -f dir1/app.*.log.* dir2/app.*.log.* 的守护进程版本

tail -f dir1/app.*.log.* dir2/app.*.log.* 的守护进程版本

我需要编写一个守护程序来跟踪多个主机上的日志文件的内容。 “日志驱动器”(主机是 Windows 服务器)全部安装在单个 Linux 主机中。

棘手的部分是日志文件会来(当服务器客户端上传时)和去(当存档时),并且没有固定名称。它们都具有命名模式“app.DATE.log.N”,并且目录是固定的(服务器列表是固定的)。

因此,我需要一个“tail -f”,它采用“模式”而不是实际名称,并定期检查(每隔几秒;作为近实时监控)是否使用此模式创建了新文件,并且可以处理文件也会被删除(它们会在 24 小时后被移动和压缩)。

理想情况下,我只使用现有的 unix 工具进行“跟踪”,这样我就可以编写一个从 stdin 读取的简单守护程序。该解决方案应该足够强大,能够处理 IO 错误,因为我们正在讨论通过网络安装的驱动器。

我发现有像“lnav”和“multitail”这样的工具,但两者似乎都是为交互式使用而设计的,这不是我需要的。

答案1

我会使用系统日志(例如系统日志或 syslog-ng)和对数旋转实现你想要的。这是一个教程为您提供全面的信息。

相关内容