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

13

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

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

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

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

Юлиан
источник
Если вам не нужны эти журналы, почему бы не отключить функцию регистрации в вашем приложении?
Ди
1
Извините, но я не могу считать это ответом Ди. Чтобы удовлетворить ваше любопытство, нам нужны эти журналы для различных операций, таких как отладка, мы просто не хотим, чтобы они там гнили.
Юлиан

Ответы:

16

В этом случае вы можете использовать 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
}
Deeh
источник
3

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

Alex
источник
2
Пожалуйста, не публикуйте ответы только для ссылок, чтобы предотвратить гниение ссылок. Вместо этого добавьте наиболее релевантную информацию из ссылки в свой ответ или, в качестве альтернативы, опубликуйте ссылку как комментарий, а не как ответ. См. Эту статью справочного центра для получения дополнительной информации.
Свен