Ограничить количество доступных архивов в ротации syslog

Ограничить количество доступных архивов в ротации syslog

У меня есть следующая конфигурация для моего /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, которое ограничивает размер файла syslog до 1 МБ. Так что когда syslog достигает 1 МБ, он должен ротироваться (пока не проверено)

auth,authpriv.*    -/var/log/auth.log
$outchannel mysyslog,/var/log/syslog,1048576
*.*;auth,authpriv.none  :omfile:$mysyslog

решение1

logrotate не запускает ротацию, когда файл достигает «размера 100 КБ». Он работает по запланированным проверкам.

Объясняем, как будет работать первый раздел вашей конфигурации. Выполняйте ежедневную проверку /var/log/syslog, если он больше 100k, поверните его, если есть 4 копии, удалите самую раннюю.

Вы можете изменить daily на hourly в файле конфигурации. Затем, cp /etc/cron.daily/logrotate /etc/cron.hourly/logrotate, если его там еще нет.

Связанный контент