我很困惑地发现,例如,运行时journalctl -f
显示我的日志在 8 个月前的 4 月 20 日停止。我吹奏到“less”,journalctl | less
并按G
下去到最后,同样的事情。
然后我就这么做了journalctl | less
,并且‘慢慢’地往下走(ctrl+d
),这样我就能比 4 月 20 日走得更远……
日志中有很多内容!我认为这是因为加载的内容有限制。但是,日志不应该被轮换吗?或者在没有用户干预的情况下以某种方式进行修剪?
在我的journald.conf
SystemMaxFileSize
/SystemMaxUse
中未设置(我找到的解决方案这里)。我可以尝试上面的方法,但我有点想弄清楚它的真相。
我上线了曼扎罗 5.8.18-1。
非常感谢任何帮助或见解。谢谢!
答案1
接受的答案是错误的。
- 默认情况下,journald 会限制其大小,通常为 4GB。来自文档:
SystemMaxUse= 和 RuntimeMaxUse= [...] SystemKeepFree= 和 RuntimeKeepFree= [...] 第一对默认为相应文件系统大小的 10%,第二对默认为 15%,但每个值的上限为 4G。
- 事实上,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
选择某个日期或时间,而不是。