我需要开发一个 bash 脚本,通过读取所有服务日志文件来触发错误和警告的更改。我们有近700个服务,我使用API将服务的日志一一下载并从单机触发邮件。
在第一次循环期间,我在发送警报后保存日志。在下一个循环中,我将diff
处理新下载的日志和已保存的日志,然后检查差异输出上的错误并触发邮件。这样我就可以避免发送重复的警报。
但我不习惯存储所有 700 个服务的日志来进行比较,它占用了我机器的大量空间。
是否有替代逻辑来避免发送重复的警报?
答案1
假设日志有时间戳(它们应该有),记住每个日志的最后时间戳就足够了。然后,在新日志中,您将跳过具有较旧时间戳的所有条目。因此,您可以将每个日志缩短为带有时间戳的一行。那内存不多了。