首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在使用pm2运行服务器时旋转日志文件?

如何在使用pm2运行服务器时旋转日志文件?
EN

Stack Overflow用户
提问于 2021-03-18 10:38:47
回答 2查看 4.7K关注 0票数 4

我们使用节点模块pm2来运行服务器和捕获应用程序日志。

但是由于流量非常大,巨大的数据被存储在一个文件中,这个文件大约超过100 in。

是否有可能每1小时更改一次文件,或每1Gb文件不重新启动服务器?

目前,我们正在手动执行此操作,重新启动服务器并重命名正在创建问题的现有文件。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-04-28 10:11:52

您可以使用PM2-对数旋转

代码语言:javascript
运行
复制
pm2 install pm2-logrotate

# max log size is 1GB
pm2 set pm2-logrotate:max_size 1G

# compress logs when rotated (optional)
pm2 set pm2-logrotate:compress true

# force rotate every hours
pm2 set pm2-logrotate:rotateInterval '0 * * * *'
票数 6
EN

Stack Overflow用户

发布于 2022-04-13 05:09:31

我个人不使用PM2日志旋转,因为它不再被维护,更糟糕的是,它是相当错误的。有一次,我在我的生产服务器上使用它,它立即多次创建大日志文件,导致0%的空间,并使服务器崩溃。那可不是个好日子。

PM2网站有一个名为“设置本机日志旋转”的部分,它告诉您运行:

sudo pm2 logrotate -u user

显然,将用户更改为运行pm2的实际用户。它将在/etc/logrotate.d/pm2上创建一个文件,并对其进行编辑,使其看起来如下所示:

代码语言:javascript
运行
复制
/home/user/.pm2/pm2.log /home/user/.pm2/logs/*.log {
        su user user
        rotate 12
        weekly
        missingok
        notifempty
        compress
        delaycompress
        copytruncate
        create 0640 user user
}

最重要的部分是su user user部分。Log转速作为root运行,并且它不喜欢创建非root用户可以查看的日志文件,因此它将失败,通常情况下是静默的。这违背了国家预防机制的理念,后者倾向于在没有特权的情况下管理事情。通过在log旋转配置文件中指定用户,您就可以解决这个问题。

我花了一段时间才弄明白-希望它能帮上忙。

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66689376

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档