我为PM2 Logrotate设置了以下设置:
rotateInterval= * * 23 * * *
max_size= 100MB
我想每隔23小时轮换一次日志和/或保留最多100MB的日志文件。但由于一些奇怪的原因,PM2 Logrotate不断地循环/创建新的日志文件,所以我失去了查看日志历史的能力,i。 e 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
我在这里做错了什么?
答案 0 :(得分:3)
我和你有同样的问题。将max_size从100MB
更改为100M
。该文档的max_size默认为10MB
,但它提供的选项为10G, 10M, 10K
。显然,它不知道如何处理MB
vs M
。
答案 1 :(得分:1)
根据文档,您可以按照以下方式安排日志轮播:
* * * * * *
┬ ┬ ┬ ┬ ┬ ┬
│ │ │ │ │ |
│ │ │ │ │ └ 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