在 Debian 系统中,/var/log/messages 日志的轮转由 rsyslog + logrotate 共同完成。下面分情况说明。
Debian 使用 rsyslog 作为系统日志服务,默认会把部分日志写入:
/var/log/messages
(有些版本可能默认不启用,需要确认 rsyslog 配置)
日志轮转由 logrotate 管理,而不是 rsyslog 自己。
logrotate 的配置文件通常在:
/etc/logrotate.conf
/etc/logrotate.d/
/var/log/messages 通常由以下文件控制:
/etc/logrotate.d/rsyslog
典型内容示例:
/var/log/messages
/var/log/syslog
/var/log/mail.log
/var/log/kern.log
{
rotate 7
daily
missingok
notifempty
delaycompress
compress
postrotate
/usr/lib/rsyslog/rsyslog-rotate 2>/dev/null || true
endscript
}
.gz)轮转后的文件示例:
/var/log/messages
/var/log/messages.1
/var/log/messages.2.gz
/var/log/messages.3.gz
grep messages /etc/logrotate.d/*
logrotate -vf /etc/logrotate.d/rsyslog
ls -lh /var/log/messages*
在某些 Debian 版本中,默认 没有 messages 文件,而是使用:
/var/log/syslog
原因:
/etc/rsyslog.conf) 可能未包含 *.messages如果确实需要 messages 日志,可以修改 rsyslog 配置:
sudo nano /etc/rsyslog.d/50-default.conf
添加:
*.info;mail.none;authpriv.none;cron.none /var/log/messages
然后重启:
sudo systemctl restart rsyslog
原因:rsyslog 没有重新打开文件
解决:确保 postrotate 脚本存在且可执行
/usr/lib/rsyslog/rsyslog-rotate
可以调整:
rotate 数量size 条件(如 size 100M)daily / weekly示例:
size 100M
rotate 5
✅ Debian 中 /var/log/messages 的轮转由 logrotate 管理
✅ 配置文件一般在 /etc/logrotate.d/rsyslog
✅ 轮转后通过 postrotate 通知 rsyslog
✅ 若文件不存在,需要检查 rsyslog 配置
如果你愿意,我可以帮你 检查当前 Debian 版本的具体配置,或者帮你写一个 自定义 messages 轮转规则。