在 Ubuntu 系统中,syslog 日志通常由 rsyslog 或 systemd-journald 管理。下面按不同场景给你几种安全、常用的清理方法,从“推荐”到“彻底”依次说明。
du -h /var/log/syslog
du -h /var/log/kern.log
journalctl --disk-usage
Ubuntu 18.04+ 默认使用 journald 记录日志。
journalctl --disk-usage
sudo journalctl --vacuum-time=7d
保留最近 7 天日志(可改为 3d、30d)
sudo journalctl --vacuum-size=100M
✅ 不会破坏系统,推荐首选
sudo truncate -s 0 /var/log/syslog
或:
sudo > /var/log/syslog
✅ 最安全,权限不会乱
sudo rm /var/log/syslog
sudo systemctl restart rsyslog
⚠️ 删除后可能导致权限或 SELinux/AppArmor 问题
logrotate(系统自动管理)Ubuntu 默认已配置:
cat /etc/logrotate.d/rsyslog
如果你发现日志过大,可手动触发:
sudo logrotate -f /etc/logrotate.conf
✅ 自动轮转、压缩、删除旧日志
sudo rm -rf /var/log/*.log.*
sudo rm -rf /var/log/syslog.*
sudo rm -rf /var/log/kern.log.*
⚠️ 仅在你明确知道用途时使用
编辑:
sudo nano /etc/systemd/journald.conf
修改或添加:
SystemMaxUse=200M
RuntimeMaxUse=100M
重启:
sudo systemctl restart systemd-journald
sudo nano /etc/rsyslog.conf
添加:
$SystemLogRateLimitInterval 5
$SystemLogRateLimitBurst 100
| 场景 | 推荐方式 |
|---|---|
| 日志太大 | journalctl --vacuum-size |
| 临时清理 | truncate -s 0 /var/log/syslog |
| 长期管理 | logrotate |
| 防止再涨 | 限制 journald / rsyslog |
❌ 直接 rm -rf /var/log/*
❌ 删除 /var/log/journal 目录
❌ 关闭 syslog 服务(可能影响排错)
如果你愿意,可以告诉我:
/var/log 占用多大我可以给你更精确的清理方案 ✅