统信uos系统日志清理需分两步:先用journalctl --rotate后--vacuum-size=50m清理/var/log/journal/下二进制日志,再手动执行sudo rm -f /var/log/*.gz删除logrotate生成的压缩日志,二者互不关联,必须同步处理。

统信UOS系统日志主要分两类:systemd-journald管理的二进制日志(存于/var/log/journal/),以及logrotate生成的传统文本压缩日志(如/var/log/syslog.1.gz)。两者互不关联,必须分别处理,否则只清一边仍会持续占满根分区。
确认日志是否真在拖累空间
先打开终端,运行:journalctl --disk-usage
看输出中“Archived and active journals take up”后面的实际大小。超过100MB就值得清理。
再检查压缩日志残留:sudo ls -sh /var/log/*.gz
只要出现几十MB以上的.gz文件,说明这部分也被忽略了。
安全清理journal日志(关键:先轮转再裁剪)
journalctl的--vacuum-*命令对正在写入的活动日志无效,必须先强制轮转:
sudo journalctl --rotate sudo journalctl --vacuum-size=50M
这样会把当前所有日志标记为归档,并只保留最新部分,总大小不超过50MB。若想按时间清理(比如只留最近7天),可改用:sudo journalctl --vacuum-time=7d
手动删除压缩旧日志(.gz文件不被journalctl管)
这些是logrotate自动生成的,systemd完全不管,必须单独删:sudo rm -f /var/log/*.gz
执行后空间立刻释放,无风险——它们本就是过期归档。
永久限制日志增长(避免几周后重蹈覆辙)
编辑配置:sudo nano /etc/systemd/journald.conf
找到并修改两行(去掉前面的#):
SystemMaxUse=50M MaxRetentionSec=7day
保存后重启服务:sudo systemctl restart systemd-journald
补充:自动定时清理(适合长期值守环境)
可配置systemd user timer每天凌晨2:30自动执行轮转+裁剪:
创建服务文件 ~/.config/systemd/user/journal-clean.service,内容含:
ExecStart=/usr/bin/sudo /usr/bin/journalctl --rotate ExecStart=/usr/bin/sudo /usr/bin/journalctl --vacuum-size=50M
再配timer文件,启用即可。注意必须用 systemctl --user 命令操作,不能漏掉--user参数。











