限制系统日志轮换中可用的存档数量

限制系统日志轮换中可用的存档数量

我的/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。

相关内容