Logrotate ежедневно / еженедельно / ежемесячно

Почему мы устанавливаем опцию ежедневно / еженедельно / ежемесячно в файле конфигурации, если мы можем сделать это в cron (и действительно делаем)? В чем смысл этого варианта?

Например: я настроил выполнение «logrotate -f /etc/logrotate.d/app» каждый день (ежедневно). Но в конфигурационном файле (/etc/logrotate.d/app) я устанавливаю еженедельно:

/home/dirnov/www/letsee/logs/*.log {
        monthly
        missingok
        rotate 4
        compress
        notifempty
}

И я вижу, что смысла «ежемесячно» нет, потому что cron будет делать это «ежедневно».


person ilya_direct    schedule 28.04.2017    source источник
comment
Запись в файлах /etc/logrotate.d указывает период ротации для этого конкретного файла. Запись, запускающая logrotate из cron на ежедневной основе, позволяет программе logrotate читать эти файлы конфигурации в каталоге logrotate.d и решать, какое действие следует предпринять для каждого из файлов (которые, вероятно, имеют разные характеристики периода).   -  person Shadowfen    schedule 29.04.2017
comment
-f заставит журналы вращаться независимо от критериев вращения. Выполнение -f эффективно удаляет большую часть модуля. Вот полезная информация по той же теме. stackoverflow .com / questions / 2117771 /   -  person Mike D    schedule 04.05.2017


Ответы (1)


Связь между crond и logrotate довольно проста: cron запускает logrotate один раз в день (см. /etc/cron.daily/logrotate), а затем logrotate решает, что делать, на основе файлов конфигурации. Ваш конкретный вопрос, касающийся ежемесячного использования, разъясняется на странице руководства logrotate (8):

ежемесячно
Файлы журнала меняются при первом запуске logrotate за месяц (обычно это первый день месяца).

Эффект вашей конфигурации заключается в том, что файлы журналов будут расти в течение месяца, и после начала нового месяца logrotate переименует, а затем сжимает любые файлы ненулевого размера, которые соответствуют заданной вами спецификации.

Наконец, если вы используете logrotate -f, logrotate будет вращать журналы независимо от периода, установленного в конфигурации. Если вы не используете задание cron, поставляемое дистрибутивом, не забудьте не указывать -f.

(Обратите внимание, что этот ответ предполагает Debian и Ubuntu, поскольку это то, что я могу легко протестировать, но должно применяться в более общем плане).

person kiko    schedule 11.12.2018