我不明白为什么/var/log/journal/
文件夹这么大。
例如,通过执行命令systemctl -f
,我看到了填充。如果我在 Thunderbird 上单击一封电子邮件,它会生成数十行我认为没用的内容。
du -h /var/log/journal/
目前我已经在1天内生成了超过1.5GB( )!
有没有一种方法可以在不停止日志记录的情况下大幅减少该日志?
答案1
您可以使用以下命令减小日志的大小:
sudo journalctl --vacuum-size=100M
这将保留最近的100M数据。
sudo journalctl --vacuum-time=10d
将删除除最近 10 天之外的所有内容。
--vacuum-size=,--vacuum-time=,--vacuum-files= 删除最旧的归档日志文件,直到它们使用的磁盘空间 低于指定的大小(通常用“K”、“M”、“G”和 “T”后缀),或者所有归档日志文件均不包含早于 指定的时间跨度(通常用“s”、“m”、“h”、“days”指定, “月”、“周”和“年”后缀),或者不超过指定的 剩余的单独日志文件数。请注意,运行 --vacuum-size= 对 --disk-usage 显示的输出只有间接影响,因为 后者包括活动日志文件,而清理操作仅 对归档日志文件进行操作。同样,--vacuum-files= 可能不会 实际上将日志文件的数量减少到指定的数量以下, 因为它不会删除活动日志文件。 --vacuum-size=、--vacuum-time= 和 --vacuum-files=可以组合成 单次调用即可执行大小、时间和 归档日志文件的文件数限制。指定以下任一值 这三个参数为零相当于不执行特定的 限制,因此是多余的。 这三个开关也可以与 --rotate 组合成一个命令。 如果是,则首先轮换所有活动文件,然后请求清理 操作紧接着执行。旋转的效果是,所有 当前活动文件已归档(并且可能还有新的、空的日志 文件作为替换打开),因此清理操作具有 它可以最大程度地发挥其作用,因为它可以将迄今为止写入的所有日志数据都考虑进去。
答案2
教他们编辑
/etc/systemd/journald.conf
,你就教他们如何永久地解决问题。
更具体地说:激活SystemMaxUse=
那里的选项,例如SystemMaxUse=100M
仅使用 100 MB。
编辑后,使用service systemd-journald restart
激活更改的配置。这将删除多余的日志。
journald.conf
还有其他可能有用的选项。
答案3
您还需要在其中进行设置/etc/systemd/journald.conf
:
SystemMaxFileSize=100M
看:https://got-tty.org/journalctl-via-journald-conf-die-loggroesse-definieren(在德国)
答案4
阅读本文时,我对 journald.conf 的 SystemMaxFileSize 与 SystemMaxUse 选项感到困惑。下面可以解决此问题:
SystemMaxUse=
并RuntimeMaxUse=
控制日志最多可以使用多少磁盘空间。SystemKeepFree=
并RuntimeKeepFree=
控制 systemd-journald 应为其他用途留下多少磁盘空间。systemd-journald 将尊重这两个限制并使用两个值中较小的一个。
第一对默认为相应文件系统大小的 10%,第二对默认为 15%,但每个值的上限为 4G。如果文件系统几乎已满,并且在启动 systemd-journald 时违反了SystemKeepFree=
或RuntimeKeepFree=
,则限制将提高到实际可用的百分比。这意味着,如果在创建日志文件之前有足够的可用空间,并且随后其他原因导致文件系统填满,journald 将停止使用更多空间,但也不会删除现有文件以再次减少占用空间。另请注意,只会删除存档文件以减少日志文件占用的空间。这意味着,实际上,在完成清理操作后,使用的空间可能仍超过SystemMaxUse=
或限制。RuntimeMaxUse=
SystemMaxFileSize=
和RuntimeMaxFileSize=
控制单个日志文件的最大大小。这会影响通过轮换(即删除历史数据)提供磁盘空间的粒度。默认值为SystemMaxUse=
和配置值的八分之一RuntimeMaxUse=
,因此通常会保留七个轮换日志文件作为历史记录。