/var/log/journal 一个月涨到 6G,加了 logrotate 规则磁盘照样满,journalctl --disk-usage 显示占用一点没降,白白折腾了半天时间,这个目录根本不走切割。碰到这种情况,我一般先确认改动有没有真的生效。
原因不复杂,journald 用的是自己的环形文件存储,logrotate 完全不参与,只能靠 journald.conf 里的 SystemMaxUse 或者 vacuum-size 手动回收,两者服务的对象完全不同,搞混的人不少,改错地方等于白改。
「journald 日志占用」相关的验证我通常做两遍,改完一次、隔天再看一次,确认不是临时生效。报错里带路径的,先去看那个路径在不在、权限对不对。
journalctl --disk-usage sudo systemctl edit systemd-journald sudo journalctl --vacuum-size=500M sudo systemctl restart systemd-journald
同一份配置存在多处的,先确认改的是被加载的那一份。
具体做法是,先用 disk-usage 确认当前占用和目录位置 别凭感觉判断 数字说话;在 journald.conf 里配 SystemMaxUse 与保留时间 按磁盘比例算一个上限 不要照抄别人的值;执行 vacuum-size 立即回收再重启 journald 服务 重启后确认新配置生效 否则还会涨回来。
最后用这个标准收尾,disk-usage 降到 500M 左右 并且一周之后没有明显反弹 说明限制真的生效 再跑一天。
