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

Ric*_*ann 6 journalctl systemd-journald

文档中我知道我可以配置

  1. 之后,杂志的时间文件是通过删除MaxRetentionSec
  2. 日志文件通过MaxFileSec.

但是,我的目标是以一种方式配置日志,以便所有日志条目都存储在一个文件中,时间跨度为一年。应丢弃较旧的条目

我目前的解决方法是我有

  • MaxRetentionSec=1year
  • MaxFileSec=1month

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

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

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

tut*_*uju 5

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

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

$ journalctl --vacuum-time=1y
Run Code Online (Sandbox Code Playgroud)

参考:


Chr*_*uet 2

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

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

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

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

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