Ubuntu 的 syslog 过大,通常是因为 系统日志持续写入、未做轮转或被异常程序刷屏。下面按常见原因 → 排查方法 → 解决方式给你一个完整说明。
例如:
表现:
syslog 每天几百 MB 甚至几 GB
Ubuntu 默认使用:
rsyslog 写日志logrotate 做日志轮转如果:
就会导致 syslog 无限增长。
你看到的“syslog 大”可能是:
/var/log/syslog/var/log/journal/journal 日志默认 不会自动限制大小。
例如:
ls -lh /var/log/
du -sh /var/log/*
重点看:
syslogkern.logmessagesjournal/tail -f /var/log/syslog
或统计最近日志来源:
awk '{print $5}' /var/log/syslog | sort | uniq -c | sort -nr | head
journalctl --disk-usage
sudo truncate -s 0 /var/log/syslog
或:
sudo systemctl restart rsyslog
⚠️ 这只是临时止血,不是根因解决。
检查配置:
cat /etc/logrotate.d/rsyslog
正常应包含:
/var/log/syslog
/var/log/mail.log
{
rotate 7
daily
missingok
notifempty
delaycompress
compress
postrotate
/usr/lib/rsyslog/rsyslog-rotate 2>/dev/null || true
endscript
}
手动执行一次:
sudo logrotate -vf /etc/logrotate.conf
编辑:
sudo nano /etc/systemd/journald.conf
设置:
SystemMaxUse=200M
RuntimeMaxUse=100M
然后:
sudo systemctl restart systemd-journald
编辑 rsyslog 配置:
sudo nano /etc/rsyslog.conf
避免:
*.* /var/log/syslog
改为:
*.info;mail.none;authpriv.none;cron.none /var/log/syslog
然后:
sudo systemctl restart rsyslog
journalctl -p err -b
或:
grep -i error /var/log/syslog | tail -n 50
| 项目 | 建议 |
|---|---|
| syslog 轮转 | 每日 + 7 天 |
| journal | 最大 200–500M |
| 日志级别 | info / warning |
| 定期清理 | 用 logrotate |
/var/log/syslog 内容你可以直接发:
ls -lh /var/log/
journalctl --disk-usage
tail -n 50 /var/log/syslog