Journalctl 日志太大?

Journalctl 日志太大?

我很困惑地发现,例如,运行时journalctl -f显示我的日志在 8 个月前的 4 月 20 日停止。我吹奏到“less”,journalctl | less并按G下去到最后,同样的事情。

然后我就这么做了journalctl | less,并且‘慢慢’地往下走(ctrl+d),这样我就能比 4 月 20 日走得更远……

日志中有很多内容!我认为这是因为加载的内容有限制。但是,日志不应该被轮换吗?或者在没有用户干预的情况下以某种方式进行修剪?

在我的journald.conf SystemMaxFileSize/SystemMaxUse中未设置(我找到的解决方案这里)。我可以尝试上面的方法,但我有点想弄清楚它的真相。

我上线了曼扎罗 5.8.18-1

非常感谢任何帮助或见解。谢谢!

答案1

接受的答案是错误的。

  1. 默认情况下,journald 会限制其大小,通常为 4GB。来自文档:

SystemMaxUse= 和 RuntimeMaxUse= [...] SystemKeepFree= 和 RuntimeKeepFree= [...] 第一对默认为相应文件系统大小的 10%,第二对默认为 15%,但每个值的上限为 4G。

  1. 事实上,journald 确实会轮换其日志。来自文档:

SystemMaxFileSize= 和 RuntimeMaxFileSize= 控制单个日志文件最多可以增长的大小。这会影响通过轮换(即删除历史数据)提供磁盘空间的粒度。默认为使用 SystemMaxUse= 和 RuntimeMaxUse= 配置的值的八分之一,因此通常会将七个轮换日志文件保留为历史记录。

如果您需要的只是让您的日志得到轮换,让您高枕无忧,那么它们已经轮换了,您无需执行任何操作。

如果您想手动减少或增加日志大小限制,请使用 SystemMaxUse=

如果您想手动减少或增加它们的旋转速度,请使用SystemMaxFileSize=

答案2

SystemMaxFileSize=RuntimeMaxFileSize=控制单个日志文件最多可以增长的大小。这会影响通过轮换(即删除历史数据)提供磁盘空间的粒度。默认为使用SystemMaxUse=和配置的值的八分之一RuntimeMaxUse=,因此通常会将七个轮换日志文件保留为历史记录。如果启用日志压缩模式(默认启用),则最大文件大小上限为 4G。

这意味着理论上您的日志日志可能会占用多达 28GB用户。

要减小日志的大小,请运行sudo journalctl --vacuum-size=100M

为了避免这个问题,请定义SystemMaxUse- 我个人有:

cat /etc/systemd/journald.conf.d/systemMaxUse.conf
[Journal]
SystemMaxUse=64M

对于家用电脑来说绰绰有余。

答案3

如果您的问题只是日志太大而无法使用 进行导航less,则可能有助于获取文件的最后几行,然后进行导航。例如,查看最后 20 行:

$ journalctl | tail -20 > temp.txt
$ less temp.txt

tail -20您可以grep选择某个日期或时间,而不是。

相关内容