我遇到了pm2的麻烦。
我正在使用一个名为pm2-logrotate的模块,但日志中有一个巨大的gize,如1.7G,不尊重我的配置
== pm2-logrotate ==
┌────────────────┬───────────────┐
│ key │ value │
├────────────────┼───────────────┤
│ compress │ true │
│ rotateInterval │ * * */1 * * * │
│ max_size │ 10M │
│ retain │ 1 │
│ rotateModule │ true │
│ workerInterval │ 30 │
└────────────────┴───────────────┘
那么我能对pm2做什么可以删除旧日志并且不会开始使用大量数据来破坏我的机器?
答案 0 :(得分:1)
我也有这个问题。我认为目前 pm2-logrotate
中存在一个错误,其中 workerInterval
选项被忽略,它仅根据 rotateInterval
选项轮换(即默认情况下每天一次)。这意味着文件可能会比您使用 max_size
选项指定的大小大得多。查看选项 here。
我通过将 rotateInterval
选项设置为每 30 分钟而不是每天一次的默认设置来“解决”它。指令如下:
pm2 set pm2-logrotate:rotateInterval '*/30 * * * *'
这样做的问题在于,这意味着无论日志大小如何,它们都会每 30 分钟轮换一次。另一个临时解决方案是使用 crontab 运行 pm2 flush
(删除所有日志)。首先在终端中运行 crontab -e
,然后将此行添加到文件中:
*/30 * * * * pm2 flush
如果您有一个产生大量日志的特定应用程序,您还可以使用 pm2 flush your_app_name
刷新特定应用程序。如果你不擅长记住 cron 计时语法的工作原理(像我一样),你可以使用 this site。