Моя текущая конфигурация logrotate выглядит так (с использованием logrotate 3.8.7)
"/var/log/haproxy.log" {
daily
size 250M
rotate 1
create 644 root root
missingok
compress
notifempty
copytruncate
}
Он успешно запускается один раз в день, но когда размер превышает 250 МБ, он не меняется. Таким образом, он ждет до конца дня, чтобы повернуться, независимо от размера.
Я читал, что есть опция максимального размера, и после изменения size 250M
к maxsize 250M
это все еще не работает.
Нужно ли мне настраивать cron для ежечасного запуска logrotate, или logrotate запускается автоматически, потому что прослушивает этот размер файла, а у меня что-то еще не так?
Да тебе нужно бежать 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
.