Когда я использую 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 {