在 Debian 系统中,/var/log/messages 日志的分割(轮转)通常通过 logrotate 工具实现。以下是详细配置方法:
/var/log/messages 的来源rsyslog 的 /var/log/messages
/var/log/syslog/var/log/kern.log/var/log/messages,通常是 rsyslog 或 syslog-ng 产生的cat /etc/logrotate.conf
Debian 默认 rsyslog 的轮转配置在:
/etc/logrotate.d/rsyslog
编辑它:
sudo nano /etc/logrotate.d/rsyslog
/var/log/messages 轮转(示例)如果文件中没有 messages,可以手动加上:
/var/log/messages
{
rotate 7
daily
missingok
notifempty
delaycompress
compress
postrotate
/usr/lib/rsyslog/rsyslog-rotate 2>/dev/null || true
endscript
}
| 参数 | 含义 |
|---|---|
| rotate 7 | 保留 7 个历史文件 |
| daily | 每天轮转 |
| missingok | 文件不存在不报错 |
| notifempty | 空文件不轮转 |
| compress | 使用 gzip 压缩 |
| delaycompress | 延迟一次压缩 |
| postrotate | 轮转后重启 rsyslog |
sudo logrotate -d /etc/logrotate.d/rsyslog
sudo logrotate -f /etc/logrotate.d/rsyslog
查看 rsyslog 配置:
grep messages /etc/rsyslog.conf /etc/rsyslog.d/*.conf
如果没有,可以手动添加:
*.info;mail.none;authpriv.none;cron.none /var/log/messages
然后重启:
sudo systemctl restart rsyslog
如果你使用的是 systemd-journald,它 不使用 logrotate,而用:
journalctl --vacuum-size=100M
journalctl --vacuum-time=7d
/var/log/syslog/var/lib/logrotate/status如果你愿意,可以贴出:
ls /var/log/
cat /etc/rsyslog.conf
我可以帮你精确配置 ✅