使用 tail -F 监控大文件

使用 tail -F 监控大文件

我遇到了一个需求,我需要持续监控一个实时(附加)文件是否存在预定义模式(例如错误消息),我打算使用tail -F [FileName] | grep "pattern"它并将其放入某个 shell 脚本中以通知我。我担心的是它将如何处理一个 50 GB 大小的大文件,我想了解这种解决方案将消耗多少系统资源。简而言之,tail 如何从资源利用率的角度工作/处理文件。

答案1

tail不会读取整个文件。当它,它从末尾开始,然后回溯,直到达到预期的行数。然而,它当无法查找时读取所有内容,例如从管道读取。

这可能不适用于你,但请记住,tail -f跟踪文件描述符 不是文件名。因此,如果您有日志轮换,它就会停止,因为原始文件已停止更改。

相关内容