Удалить файлы с помощью logrotate

Возможно ли ПРОСТО удалить файлы журналов в каталоге, используя logrotate без их фактического вращения? У нас есть приложение, которое генерирует журналы в следующем формате: app.log.DD_MM_YYYY. Я неудачно с logrotate, имея следующий конфиг:

/opt/log/app/app.log.* {
         rotate 0
         missingok
         nomail
}

Может ли log rotate сделать это или я должен просто написать скрипт и поместить его в cron?

Бест, юлианский

2 ответа

Решение

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

/opt/log/app/app.log.* {
        missingok
        nomail
postrotate
        /usr/bin/find /opt/log/app/ -name "app.log.*" -type f -mtime +0 -exec rm {} \;
endscript
}

Цель logrotate состоит в том, чтобы хранить произвольное количество файлов журнала в течение определенного промежутка времени. Я бы использовал cron для вашей задачи. Подробнее о том, что вы можете сделать с помощью logrotate, можно узнать здесь: http://www.jamescoyle.net/cheat-sheets/676-logrotate-cheat-sheet

Другие вопросы по тегам