如何在 logrotate 之后保留文件的时间戳(修改日期)?

如何在 logrotate 之后保留文件的时间戳(修改日期)?

标题说明了一切,我为一些相当大的日志文件设置了每日日志轮换。有时我们一天可以生成 3 个这样的文件,有时我们只生成 1 个,每个文件大约 500MB。有没有办法在日志轮换后保留文件的修改日期?在日志中查找某些内容时,一眼就能记下这些日期要比逐个文件查找日期容易得多。

答案1

您可以配置日志轮换以将日期附加到轮换日志文件(通过指定 dateext 选项)。

答案2

我立即想到了两个选项:

  • 您可以使用选项 让 logrotate 将日期附加到轮换日志文件中dateext。如果您在午夜后不久进行轮换,您可能希望日志文件具有前一天的名称;您可以使用选项 来执行此操作dateyesterday
  • 您可以使用postrotate运行命令,例如touch -m yesterday在文件旋转后,将文件的修改时间更改为前一天。

man logrotate.confinfo coreutils 'touch invocation'开始寻找更多信息的好地方。

相关内容