如何获取当前systemd-journald运行配置?

如何获取当前systemd-journald运行配置?

我想获取 的当前配置journald,类似于问题如何查看systemd的运行时全局配置?

我怎样才能做到这一点?

具体来说,我已经设置了一些用于日志轮换的可用参数,但日志似乎遵循其他值。我想查看所有参数( 、 等)的当前值,SystemMaxUse以便SystemMaxFileSize更好地了解限制当前日志保留的因素。目前,我只有日志在启动时给出的消息:

System journal [...] is 5.8G, max 12.0G, 6.1G free.

答案1

我想你正在寻找的是systemd-analyze cat-config systemd/journald.conf。它将显示 systemd-journald 使用的当前活动配置。

答案2

要到达一半,请运行

journalctl -u systemd-journald -o json-pretty

json-pretty 输出格式化程序将显示与日志消息关联的所有字段。有 MAX_USE_PRETTY 和 MAX_USE 字段,代表 SystemMaxUse。你也可以打补丁服务器空间使用消息

答案3

希望我正确理解你的问题,这是我在日志配置的手册页中找到的内容:日志.conf(5)

配置目录和优先级

    默认配置是在编译期间定义的,因此仅当需要偏离这些默认值时才需要配置文件。默认情况下,配置文件/etc/systemd/ 包含注释掉的条目,显示默认值作为管理员的指南。可以编辑此文件以创建本地覆盖。

这意味着您在提到的配置文件中已经拥有所有默认值。但是,某些选项,特别是您正在寻找的有关最大尺寸的选项,并未填写。

“持久”和“自动/运行时”存储模式之间存在差异。

这是我在下面找到的内容:

SystemMaxUse=,,,,,,,,,,SystemKeepFree=SystemMaxFileSize=SystemMaxFiles=RuntimeMaxUse=​ RuntimeKeepFree=RuntimeMaxFileSize=RuntimeMaxFiles=

    对存储的日志文件实施大小限制。以“系统”为前缀的选项适用于存储在持久文件系统上的日志文件,更具体地说/var/log/journal。以“运行时”为前缀的选项适用于存储在易失性内存文件系统上的日志文件,更具体地说/run/log/journal。前者仅在/var挂载、可写且目录/var/log/journal存在时使用。否则,仅适用后者。请注意,这意味着在早期启动期间,如果管理员禁用持久日志记录,则仅适用后一个选项,而如果启用持久日志记录并且系统完全启动,则应用前一个选项。 ……

接下来是:

    第一对默认为各自文件系统大小的 10%,第二对默认为 15%,但每个值的上限为 4G。如果文件系统几乎已满,并且在启动 systemd-journald 时违反了SystemKeepFree=RuntimeKeepFree=,则限制将提高到实际空闲的百分比。 ……

Journald.conf 的手册页继续介绍这些设置,因此我认为如果您检查自己系统上实际存在的手册页,那么对于您运行的版本来说,这将是最好的且更新的。

关于日志轮换,我假设您询问的是日志日志而不是 logrotate-service?前者也在手册页中,称为“真空清洁”,而后者是不同的服务。

Systemd 提供了通过 cron 作业用“计时器”服务替换旧日志轮换的可能性,以实现相同的目的。定时器可以这样找到:sudo systemctl list-timers --all --no-pager并且可以使用普通的“sytemctl启用”命令等来启用定时器。

相关内容