在 Ubuntu 中,syslog 默认由 rsyslog 或 systemd-journald 管理,大小限制方式不同。下面分别说明常见做法。
Ubuntu 默认使用 rsyslog + logrotate 来控制日志大小。
ls -lh /var/log/syslog
logrotate 配置文件一般在:
/etc/logrotate.d/rsyslog
示例配置(限制大小和保留数量):
/var/log/syslog
{
size 100M
rotate 5
missingok
notifempty
compress
delaycompress
postrotate
/usr/lib/rsyslog/rsyslog-rotate 2>/dev/null || true
endscript
}
说明:
size 100M:日志达到 100MB 就轮转rotate 5:最多保留 5 个旧日志compress:压缩旧日志修改后测试:
sudo logrotate -d /etc/logrotate.d/rsyslog
sudo truncate -s 0 /var/log/syslog
⚠️ 不推荐长期使用,仅用于紧急清理。
如果你使用的是 journalctl 查看日志:
journalctl --disk-usage
编辑配置文件:
sudo nano /etc/systemd/journald.conf
设置:
[Journal]
SystemMaxUse=200M
SystemMaxFileSize=50M
MaxRetentionSec=1week
常用参数说明:
SystemMaxUse:journal 最大占用磁盘SystemMaxFileSize:单个文件大小MaxRetentionSec:日志保留时间重启服务生效:
sudo systemctl restart systemd-journald
| 方式 | 配置文件 | 控制方式 |
|---|---|---|
| rsyslog | /etc/logrotate.d/rsyslog |
按大小 / 时间轮转 |
| journald | /etc/systemd/journald.conf |
限制总磁盘使用 |
logrotate 限制 /var/log/syslogjournald 限制大小如果你愿意,可以告诉我:
22.04 / 20.04)我可以帮你给出最合适的一套配置。