LINUX.ORG.RU
ФорумAdmin

logrotate, как заставить НЕ ротировать уже сжатые файлы?

 ,


0

1

Добрый день. Есть у меня настроенная ротация папки с логами. Конфиг выглядит вот так:

/storage/logs/catalog/logs/* {
        daily
        rotate 30
        maxage 30
        dateext
        compress
        delaycompress
        missingok
        notifempty
        postrotate
            find /storage/logs/catalog/logs -type f -mtime +2 -exec bzip2 {} \;
            find /storage/logs/catalog/logs -type f -mtime +31 -exec rm -rf {} \;
            find /storage/logs/catalog/logs -type f -empty -exec rm -rf {} \;
        endscript
}

Почему даже после сжатия файлы, в этой папке, постоянно ротируются? Вот пример:

catalina.out-20200121.bz2-20200129.bz2-20200131.bz2

Потому что ты говоришь ему ротировать всё, вот он и ротирует.

Надо /storage/logs/catalog/logs/*.out, либо /storage/logs/catalog/logs/catalina.out

alestro
()
Ответ на: комментарий от alestro

Проблема в том, что у меня там же есть и другие логи «*.log», «*.txt», а есть и вовсе без расширения…

Ту же стоит вопрос именно в том, как запретить ротировать сжатые логи, т.е. «*.bz2»

Bash_Boy
() автор топика
Последнее исправление: Bash_Boy (всего исправлений: 1)

А зачем все эти find вообще!? По compress оно и так сожмётся, по daily/rotate 30 и так грохнет лишнее. Единственное что, если за сутки текущий файл будет нулевым, то ротации не будет, и старый лог задержится в жизни.

AS ★★★★★
()
Последнее исправление: AS (всего исправлений: 1)
Ответ на: комментарий от AS

Потому что у меня есть логи с уникальными именами и отротировав их один раз, больше с ними ничего не происходит, а если стоит ручное сжатие и удаление, то они жмутся и удаляются. Пример:

FINSObjMgr_rus_0020_20971601.log-20200129.bz2     │    210│Jan 27 19:18
FINSObjMgr_rus_0020_20971603.log-20200131         │    967│Jan 29 15:15
FINSObjMgr_rus_0020_20971615.log-20200130         │    110│Jan 29 15:36
Bash_Boy
() автор топика
Последнее исправление: Bash_Boy (всего исправлений: 2)
Ответ на: комментарий от Bash_Boy

Ну тогда ротировать их без логротейта. Раз всё равно всё через скрипт делается. Вообще у find можно регулярное выражение для выборки по имени задать. Если то, что надо искать и ротировать, всегда заканчивается на несколько цифр, можно добавить что-то вроде "-regex "[0-9]{3}$" (только синтаксис уточнить для find).

AS ★★★★★
()
Последнее исправление: AS (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.