PM2 Logrotate продолжает генерировать новые журналы

У меня установлены следующие настройки для PM2 Logrotate:

rotateInterval= * * 23 * * *
max_size= 100MB   

Я хочу вращать журналы каждые 23 часа и / или хранить максимум 100 МБ файлов журналов. Но по какой-то странной причине PM2 Logrotate продолжает вращать / создавать новые файлы журналов слишком часто, поэтому я теряю возможность просматривать историю журналов, т.е. е pm2 logs --lines 300 только показывает, что новый журнал был создан. Это вывод, который я вижу в терминале:

pm2-logrotate > "/root/.pm2/logs/scraper-init-out-1__2017-06-01_08-00-25.log" has been created

pm2-logrotate > "/root/.pm2/logs/pm2-logrotate-out-2__2017-06-01_08-00-25.log" has been created  

pm2-logrotate > "/root/.pm2/logs/pm2-logrotate-out-2__2017-06-01_08-00-55.log" has been created                                                       

pm2-logrotate > "/root/.pm2/logs/pm2-logrotate-out-2__2017-06-01_08-01-25.log" has been created  

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

2 ответа

У меня была такая же проблема, как и у вас. Изменить max_size с 100MB в 100M, Документация имеет значение по умолчанию для max_size как 10MB но варианты это дает 10G, 10M, 10K, Видимо, он не знает, что делать с MB против M,

Согласно документации, вот как вы хотите запланировать ротацию журнала:

*    *    *    *    *    *
┬    ┬    ┬    ┬    ┬    ┬
│    │    │    │    │    |
│    │    │    │    │    └ day of week (0 - 7) (0 or 7 is Sun)
│    │    │    │    └───── month (1 - 12)
│    │    │    └────────── day of month (1 - 31)
│    │    └─────────────── hour (0 - 23)
│    └──────────────────── minute (0 - 59)
└───────────────────────── second (0 - 59, OPTIONAL)

https://github.com/pm2-hive/pm2-logrotate

Если вы установите rotateInterval '* * 23 * * *', log-rotate будет вращать журнал каждую секунду каждой минуты 23-го часа.

Я не думаю, что вы можете вращать каждые 23 часа, кроме как менять настройку ежедневно, но чтобы вращаться на 23-м часу каждого дня, вы должны установить это так: rotateInterval '0 0 23 * * *'

Также обратите внимание, что, поскольку параметр 'second' является необязательным, вы можете выразить это более просто: rotateInterval '0 23 * * *'

Редактировать:

Это явно установит для всех параметров pm2-logrotate их значения по умолчанию:

pm2 set pm2-logrotate:retain 7
pm2 set pm2-logrotate:compress false 
pm2 set pm2-logrotate:dateFormat YYYY-MM-DD_HH-mm-ss 
pm2 set pm2-logrotate:max_size 10M 
pm2 set pm2-logrotate:retain 7 
pm2 set pm2-logrotate:rotateInterval '0 0 * * * '
pm2 set pm2-logrotate:rotateModule true 
pm2 set pm2-logrotate:workerInterval 30      
Другие вопросы по тегам