Logrotate не удаляет старые журналы

Logrotate не удаляет старые журналы

Я использую следующую настройку для архивации и удаления журналов:

/path/to/logs/*.log {
    daily
    missingok
    compress
    rotate 4
    nodateext
    nocreate
    maxage 14

}

В моем расположении журналов есть журналы, которые выглядят следующим образом:

-rwxrwxrwx 1 nobody nobody 21635 Sep 26 13:09 audit-2016.09.26.log

Которые затем поворачиваются и сжимаются, чтобы выглядеть вот так:

-rwxrwxrwx 1 nobody  nobody    180485 Sep 10 03:41 audit-2016.09.26.log.1.gz

Проблема, с которой я столкнулся, заключается в том, что после архивирования каждый вечер журналы не удаляются через 14 дней (как это должна делать директива maxage).

Есть ли у кого-нибудь идеи, почему это происходит или что мне следует изменить в конфигурации logrotate?

Спасибо!

решение1

Из страницы руководства logrotate:

максимальное количество

Удалить ротированные журналы старше дней.Возраст проверяется только в том случае, если файл журнала подлежит ротации.

audit-2016.09.26.logбыл создан только один раз и больше никогда. Поэтому он больше никогда не будет ротироваться.

На самом деле ваши файлы журнала аудитауже повернуты. Похоже, вы хотите только сжать их и удалить старые файлы. Я не знаю, возможно ли это с помощью logrotate. Вы можете добавить скрипт postrotate к своему исходному правилу, например:

       postrotate
           find /path/to/logs -name "*.log.1.gz" -mtime +14 -delete
       endscript

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