在 Debian 中,/var/log/messages 通常由 rsyslog 产生,而日志轮转一般是由 logrotate 来管理的。
下面按常见情况说明怎么做。
ls -l /var/log/messages
如果有该文件,通常是 rsyslog 写的:
# /etc/rsyslog.conf 或 /etc/rsyslog.d/*.conf
*.info;mail.none;authpriv.none;cron.none /var/log/messages
Debian 默认使用 logrotate,它每天由 cron / systemd timer 调用。
ls /etc/logrotate.d/
cat /etc/logrotate.d/rsyslog
通常 rsyslog 的日志(包括 messages)已经在配置中:
/var/log/messages
/var/log/syslog
/var/log/auth.log
...
{
rotate 4
weekly
missingok
notifempty
compress
delaycompress
sharedscripts
postrotate
/usr/lib/rsyslog/rsyslog-rotate
endscript
}
如果没有
/var/log/messages,可以手动加。
创建或编辑:
sudo nano /etc/logrotate.d/messages
内容示例:
/var/log/messages {
daily
missingok
notifempty
rotate 7
compress
delaycompress
create 640 root adm
sharedscripts
postrotate
/usr/lib/rsyslog/rsyslog-rotate
endscript
}
说明:
daily:每天轮转rotate 7:保留 7 份compress:压缩旧日志postrotate:通知 rsyslog 重新打开日志文件sudo logrotate -d /etc/logrotate.d/messages
sudo logrotate -f /etc/logrotate.d/messages
Debian 通常已有:
/usr/lib/rsyslog/rsyslog-rotate
或者 systemd 环境也可使用:
postrotate
systemctl kill -s HUP rsyslog
endscript
systemctl status rsyslog
如果你愿意,我可以: