logrotate по размеру - мне нужно изменить cron?

10

Моя текущая конфигурация logrotate выглядит следующим образом (используя logrotate 3.8.7)

"/var/log/haproxy.log" {
  daily
  size 250M
  rotate 1
  create 644 root root
  missingok
  compress
  notifempty
  copytruncate
}

Он успешно запускается один раз в день, но когда размер превышает 250M, он не поворачивается. Так что он ждет до конца дня, чтобы вращаться, независимо от размера.

Я читал, что есть опция maxsize, и после перехода size 250Mна maxsize 250Mнее все еще не работает.

Нужно ли устанавливать cron для запуска logrotate каждый час, или logrotate запускается автоматически, потому что прослушивает файл такого размера, и у меня что-то не так происходит?

Хоммер Смит
источник

Ответы:

7

Да, вам нужно бегать logrotateчаще, чем раз в день, чтобы достичь этого. Ответ дан в параграфе секунд справочной страницы logrotate(8) :

Обычно logrotateзапускается как ежедневная работа cron. Он не будет изменять журнал несколько раз в течение одного дня, если критерий для этого журнала не основан на размере журнала и logrotateвыполняется несколько раз каждый день, или если не используется опция -fили --force.

Если вы хотите работать logrotateежечасно, а не ежедневно, вы можете переместить его:

mv /etc/cron.daily/logrotate /etc/cron.hourly

С 3.8.1 не было maxsize. Разница между sizeи maxsizeописана здесь:

maxsize размер

Файлы журналов поворачиваются , когда они растут больше , чем размер байтов еще до дополнительно заданного интервала времени ( daily, weekly, monthlyили yearly). Связанный sizeпараметр аналогичен, за исключением того, что он является взаимоисключающим с параметрами временного интервала и вызывает ротацию файлов журнала без учета последнего времени вращения. Когда maxsizeиспользуется, учитываются размер и временная метка файла журнала.

Это сделает оба пригодных для вашего использования: sizeбез какого-либо интервала, и maxsizeесли также требуется интервал. Однако это не меняет того факта, что по умолчанию logrotateвыполняется только ежедневно. Этот интервал подходит для большинства, так как в большинстве случаев для роста журнала требуется больше времени, чем в день 250M.

Эса Йокинен
источник
1
К вашему сведению, существует директива maxsize, начиная с 8.1: hpux.connect.org.uk/hpux/Sysadmin/logrotate-3.8.7/…
Хоммер Смит
Спасибо, что заметили, что я читал древнюю версию руководства, @HommerSmith! Я исправил свой ответ соответственно.
Эса Йокинен