使用 -mmin 查找命令未按预期工作

使用 -mmin 查找命令未按预期工作

在我们的生产服务器 (AIX) 中,每微秒都会有多个 API 调用,这些 API 调用详细信息将附加在名为记录日志。另一方面,我们使用日志中的数据在仪表板中发布,因此我们将使用以下命令获取过去 5 分钟内更新的日志文件:

find . -type f -name ins.log -mmin -5

如果没有-mmin,该命令会找到该文件,并且可以看到该文件的修改时间是最近的:

$ date
Tue Aug 29 18:34:54 +08 2023
$ find . -type f -name ins.log | xargs ls -l
-rw-r--r--    1 123456  123grp        74356 Aug 29 18:34 ./ins.log

但是当我添加时却-mmin找不到该文件。

$ date
Tue Aug 29 18:35:41 +08 2023
$ find . -type f -name ins.log -mmin -60

例如

  • 如果 ins.log 在 3:15 更新,系统日期为 3:15 并且脚本在 3:15 运行,则在 3:15 更新的 ins.log 不会出现在输出中

答案1

的文档find -mmin在 AIX 上将此描述为预期效果:

find不考虑命令启动时间之后修改的文件

因此,由于您(非常)频繁地更新该文件,因此它会在您启动find命令后更新,因此将从列表中省略。

该修复在同一个注释段落中进行了描述:

当该find命令在一元运算符 […] 中使用时NOT,将显示在该命令开始时间之后修改的文件,直到 的值为止n

按照这个细节,您应该只需要反转测试,以便您可以使用!

find . -type f -name 'ins.log' ! -mmin +59

相关内容