Назад | Перейти на главную страницу

Бесконечные файлы с опцией copytruncate в logrotate

Когда я использую logrotate с этой конфигурацией:

/home/ubuntu/.pm2/logs/* {
        rotate 2
        size 200k
        missingok
        notifempty
        compress
        delaycompress
        copytruncate
        create 0640 ubuntu ubuntu
}

Мой файл (назовем его test) не поворачивается, пока не достигнет 200k. По достижении 200k он будет обрезан. Я остаюсь с test при 0k (правильно!) и test.1 при> 200к.

Проблема в том, что на следующий день я получу test > 0k (правильно растет), test.1 при 0k и test.1.1 при> 200к. По прошествии нескольких дней я получу бесконечное количество test.1.1.1.1... по адресу 0k, а последний -> 200k, созданный вчера.

Моя первоначальная идея заключалась в том, чтобы иметь два файла, test при любом размере менее 200 КБ и только другой, более старый, файл журнала.

Мне нужно использовать copytruncate, как будто я этого не сделаю, процесс PM2 будет продолжать писать в старый файл журнала.

Что я делаю не так?

Для всех, кто сталкивается с подобной проблемой.

Проблема в этой строке:

/home/ubuntu/.pm2/logs/* {

В частности, универсальный * должен быть заменен *.журналили же повернутые файлы (с расширением .1 и т. д.) также должны быть повернуты в следующем цикле вращения.

Это устраняет проблему:

/home/ubuntu/.pm2/logs/*.log {