Я использую следующую настройку для архивации и удаления журналов:
/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