我的/etc/logrotate.d/rsyslog
文件具有以下配置。在其中,我明确声明了轮换天数为 4,轮换存档文件的大小为 100k /var/log/syslog
。
我想知道的是,当档案达到 100k 时,它应该自行旋转。如果需要,它一天内最多旋转 4 次吗?如果它需要旋转 4 次,因为它不断达到 100k,它会这样做并且只保存 4 个文件?也许我无法完全解释我的问题,但我正在寻找的目标是一旦旋转的档案文件达到 100k,它应该自行旋转,并且旋转总数不应超过 4 个文件因此,如果一小时内需要 8 次轮换,则应该只有最后 4 个轮换的档案。I do see a daily configuration, not sure if that is complemented with the rotate configuration?
如果我需要设置存档文件的最大数量,而每日轮换配置没有这样做,我该怎么办?
/var/log/syslog
{
rotate 4
size 100k
daily
missingok
notifempty
delaycompress
compress
postrotate
invoke-rc.d rsyslog rotate >/dev/null
endscript
}
/var/log/mail.info
/var/log/mail.warn
/var/log/mail.err
/var/log/mail.log
/var/log/daemon.log
/var/log/kern.log
/var/log/auth.log
/var/log/user.log
/var/log/lpr.log
/var/log/cron.log
/var/log/rsyslog.log
/var/log/debug
/var/log/messages
{
rotate 4
weekly
missingok
notifempty
compress
delaycompress
sharedscripts
postrotate
invoke-rc.d rsyslog rotate >/dev/null
endscript
}
我也有这个syslog configuration
,它将系统日志文件大小限制为 1MB。因此,当系统日志达到 1MB 时,它应该自行旋转(尚未测试)
auth,authpriv.* -/var/log/auth.log
$outchannel mysyslog,/var/log/syslog,1048576
*.*;auth,authpriv.none :omfile:$mysyslog
答案1
当文件达到“大小 100k”时,logrotate 不会触发轮换,它通过定期检查进行操作。
解释一下配置的第一部分是如何工作的。每天检查 /var/log/syslog,如果大于 100k,则轮换它,如果有 4 个副本,则删除最早的副本。
您可以在配置文件中将每日改为每小时。然后,如果不存在,则 cp /etc/cron.daily/logrotate /etc/cron.hourly/logrotate。