如何配置日志以丢弃早于特定时间跨度的条目

如何配置日志以丢弃早于特定时间跨度的条目

来自文档我知道我可以配置

  1. 日记之后的时间文件通过删除MaxRetentionSec
  2. 日记之后的时间文件通过 旋转MaxFileSec

然而,我的目标是以一种方式配置日志,使所有日志条目都存储在一个文件中,时间跨度为一年。年长的条目应该被丢弃。

我目前的解决方法是

  • MaxRetentionSec=1year
  • MaxFileSec=1month

然而,这有两个主要缺点。

  1. 该日志每月都会轮换一次,因此访问较旧的条目很麻烦。
  2. 每次一年到期时,Journald 都会丢弃一整月,而不是仅仅丢弃一天。

是否可以将日志配置为按照目标中描述的方式运行?

答案1

刚刚在 askubuntu stackexchange 上找到了这个精彩的答案:https://askubuntu.com/a/1012913/36168

回顾一下,作者建议设置一个 cronjob 定期运行,例如,对于您的用例,每天运行:

$ journalctl --vacuum-time=1y

参考:

答案2

然而,我的目标是以一种方式配置日志,使所有日志条目都存储在一个文件中,时间跨度为一年。

这意味着该文件将在 1 年后轮换,并在最后一个条目超过 1 年后被删除。

没有办法做你想做的事。您必须执行syslog和操作logrotate:轮换到多个文件,并删除最旧的文件。如果您不想浪费一个月的日志负载空间,则可以更频繁地轮换。

该日志每月都会轮换,因此访问较旧的条目很麻烦

那个怎么样?该journalctl实用程序无缝读取所有可用的日志文件。

相关内容