pm2 默认的 logrotate 文件设置是什么意思?

问题描述 投票:0回答:2

我目前正在开发一个创建大量大型日志文件的应用程序。因此,为了管理这些,我想在午夜重新启动应用程序,压缩它留下的日志文件,并使用当前日期启动一个新的日志文件,因此日志文件夹可能如下所示:

latest.log
2022-10-22_00:00:00.log.tar.gz
2022-10-21_00:00:00.log.tar.gz
2022-10-20_00:00:00.log.tar.gz
2022-10-19_00:00:00.log.tar.gz

PM2 承诺能够使用这个模块来做到这一点:

https://www.npmjs.com/package/pm2-logrotate 但它似乎有一个令人讨厌的名声: https://stackoverflow.com/a/71852170/2741831

于是我准备放弃的时候发现pm2有一个原生函数,容易混淆也叫logrotate:

https://pm2.keymetrics.io/docs/usage/log-management/#Setting%20up%20a%20native%20logrotate 本机 logrotate 部分

生成如下所示的配置文件:

/home/user/.pm2/pm2.log /home/user/.pm2/logs/*.log {
        rotate 12
        weekly
        missingok
        notifempty
        compress
        delaycompress
        create 0640 user user
}

这在任何地方都没有记录,所以我不知道它是什么或它是如何工作的,尽管它似乎能够压缩日志文件,这很好。 它甚至没有说我是否必须为它设置一个 crontab。

所以这是我的问题:

  • 我可以使用 pm2 native logrotate 来设置如上所述的系统吗?
  • 配置文件,尤其是顶部的路径是什么意思?
  • pm2-logrotate 本身还是我需要设置一个 crontab?
node.js linux tar pm2 logrotate
2个回答
0
投票

显然,这个命令所做的只是为 Redhat logrotate 实用程序生成一个配置文件。所以我想就用那个


0
投票

正如@user2741831 所说,它使用您的 linux 系统的本机 logrotate。

  • 第一行表示块内的指令适用于 /home/user/.pm2/logs/*.log 中的所有日志:
  • weekly 表示该工具将尝试每周轮换日志。其他可能的值是每小时、每天和每月。
  • rotate 12 表示只保留 12 个旋转日志。因此,最旧的文件将在第四次后续运行中被删除。
  • missingok 如果日志文件丢失,继续下一个而不发出错误消息。
  • compressdelaycompress 用于告诉所有旋转的日志,除了最近的日志,都应该被压缩。

你可以在这个 link 上找到 Debian 的一些解释

© www.soinside.com 2019 - 2024. All rights reserved.