统信uos系统日志膨胀导致根分区占满,需先用journalctl --disk-usage和sudo ls -sh /var/log/*.gz定位问题,再按rotate→vacuum顺序清理journal日志,并手动删除.gz压缩日志,最后通过修改journald.conf限制日志大小与保留时长。

统信UOS系统运行数周后,/var/log/journal/目录下systemd二进制日志持续膨胀,单个归档常达百MB以上,同时/var/log/中logrotate生成的*.gz压缩日志又完全游离于journalctl管理之外,二者叠加可悄然占满根分区,导致系统卡顿、更新失败或桌面提示“磁盘空间不足”。
确认日志是否真在拖累空间
先打开终端,运行:journalctl --disk-usage。如果输出中“Archived and active journals take up”后面显示超过100MB,说明journal日志已成主力占用源。
再检查压缩日志残留:执行sudo ls -sh /var/log/*.gz。只要任一文件大于10MB,就表明这部分被图形工具和journalctl双重忽略,必须手动干预。
安全清理journal二进制日志
journalctl的--vacuum-size或--vacuum-time命令对正在写入的活动日志无效,必须先强制轮转,否则清理只删旧归档、不碰当前日志——根分区照样告急。
第一步:执行sudo journalctl --rotate,等待命令返回(通常1–2秒)。
第二步:立即执行sudo journalctl --vacuum-size=50M。这会把所有已轮转的日志按时间倒序裁剪,只保留最新部分直至总大小≤50MB。
若想按时间保留(比如只留最近7天),可将第二步替换为:sudo journalctl --vacuum-time=7d。【必须严格按 rotate → vacuum 顺序执行,颠倒则无效】
手动删除logrotate生成的压缩旧日志
这些.gz文件由logrotate独立生成,systemd-journald完全不感知、不管理,图形工具也基本不识别,是空间黑洞中最隐蔽的一环。
执行:sudo rm -f /var/log/*.gz。
这条命令立刻释放空间,无风险——它们本就是过期归档,且不会影响任何正在运行的服务。
永久限制日志增长避免反复清理
编辑配置文件:sudo nano /etc/systemd/journald.conf。
找到以下两行,去掉开头的#号,并修改为:
SystemMaxUse=50M
MaxRetentionSec=7day
按Ctrl+O保存→Enter确认→Ctrl+X退出。
最后重启服务生效:sudo systemctl restart systemd-journald。











