不能手动删除/var/log/journal/下的.journal文件;应使用journalctl --vacuum-*命令清理或配置/etc/systemd/journald.conf中systemmaxuse等参数永久限制。

不能手动删除 /var/log/journal/ 下的 .journal 文件——这是最核心的原则。直接 rm -rf 会导致 journalctl 报错、新日志写不进、服务异常,甚至磁盘空间也无法真正释放。
先确认占用情况
运行以下命令查看当前 journal 占用空间:
journalctl --disk-usage
如果显示几百 MB 或几 GB,说明已明显超标。再配合 du -sh /var/log/journal 做交叉验证,避免被其他日志干扰判断。
安全临时清理(立即生效)
用 journalctl --vacuum-* 系列命令清理,它会自动重写索引、压缩归档、释放空间:
- 只保留最新 500MB:
sudo journalctl --vacuum-size=500M - 只保留最近 7 天:
sudo journalctl --vacuum-time=7d - 两者同时设(取更严条件):
sudo journalctl --vacuum-size=300M --vacuum-time=14d
执行后务必再运行 journalctl --disk-usage 确认空间已回收。
监控 Victron Energy 电力系统,生成包含电池状态、光伏发电量和活动警报的精美每日邮件报告。集成 Vic...
配置永久限制(防止复发)
编辑 /etc/systemd/journald.conf,取消注释并设置以下三项:
-
Storage=persistent(确保日志落盘,不是仅存内存) -
SystemMaxUse=500M(整个 journal 目录最大占用) -
SystemMaxFileSize=100M(单个日志文件达此大小即轮转) -
MaxRetentionSec=1week(超时自动清理,也支持30d、1month)
保存后必须重启服务:sudo systemctl restart systemd-journald
验证是否加载成功:sudo systemd-analyze cat-config systemd/journald.conf | grep -E "(MaxUse|MaxFileSize|Retention)"
其他注意事项
不要碰这些文件:
-
/run/log/journal/下的文件(内存日志,重启即消失) - 带
@或~后缀的.journal文件(如system@*.journal~,是 journald 正在写入的临时文件) - 用
find ... -delete扫描/var/log/journal删除旧文件(破坏索引,等同于手动 rm)
若需快速腾空间,可同步处理其他日志:用 truncate -s 0 /var/log/syslog 清空活跃文本日志;或删掉 30 天前的 *.log.[0-9].gz 归档文件。










