PM2日志管理——pm2-logrotate命令及小贴士

一、 pm2安装

npm install pm2 -g

二、 pm2-logrotate安装

pm2 install pm2-logrotate

三、查看pm2-logrotate配置

//查看当前pm2-logrotate配置[方法1]
pm2 conf pm2-logrotate

//查看当前pm2-logrotate配置[方法2],show是查看整个进程的情况。也可查看当前配置,在Process configuration中
pm2 show pm2-logrotate

四、设置pm2-logrotate

  • 直接在命令行复制粘贴输入就可以,配置名的key和value之间用空格
  • pm2 set设置后是实时生效的配置,会在下一个workerInterval时间的时候进行判断
//设置日志文件的最大大小为 10MB,也可以设置KB大小,例如pm2 set pm2-logrotate:max_size 100KB
pm2 set pm2-logrotate:max_size 10M

//保留最近的 30 个日志文件[小贴士1]
pm2 set pm2-logrotate:retain 30

//启用日志文件压缩,压缩后是.gz文件[小贴士2]
pm2 set pm2-logrotate:compress true

//设置日志文件的日期格式
pm2 set pm2-logrotate:dateFormat YYYY-MM-DD_HH-mm-ss  

//设置日志轮换检查的时间间隔为 30 秒,每30秒查看日志大小是否需要分割
pm2 set pm2-logrotate:workerInterval 30  

//设置日志轮换的时间间隔为每天午夜,使用的是 cron 表达式格式[小贴士3]
pm2 set pm2-logrotate:rotateInterval '0 0 * * *'  

五、 小贴士

1. retain小知识

  • 原retain数量在30,重新设置pm2 set pm2-logrotate:retain 10,数量由大减小,多余的日志会在新日志生成时进行删减[非实时]。

    • 如果数量由小变大,则实时生效

2. compress小知识

  • compress选项用于控制日志文件在轮换时是否进行压缩

  • compress 选项设置为 true 时,轮换后的日志文件将被压缩。这意味着旧的日志文件会被压缩成 .gz 格式,以节省磁盘空间。例如

    • 原始日志文件:app-out.log
    • 轮换后的压缩日志文件:app-out.log-2023-10-01_00-00-00.gz
  • compress 选项设置为 false 时,轮换后的日志文件将不会被压缩。日志文件将以原始格式保留。例如:

    • 原始日志文件:app-out.log
    • 轮换后的日志文件:app-out.log-2023-10-01_00-00-00

3. cron 表达式格式详细说明

a. Cron 表达式的基本格式

* * * * * [command]
- - - - -
| | | | |
| | | | +----- 星期几 (0 - 7) (Sunday=0 or 7) //表示任务在一周中的哪一天执行。0 和 7 都表示星期天。
| | | +------- 月份 (1 - 12) //表示任务在一年中的哪个月份执行
| | +--------- 日期 (1 - 31) //表示任务在一个月中的哪一天执行
| +----------- 小时 (0 - 23) //表示任务在一天中的哪个小时执行
+------------- 分钟 (0 - 59) //表示任务在每小时的哪一分钟执行

b. 特殊说明

  • *:表示所有可能的值。例如,* 在分钟字段表示每分钟执行一次。
  • ,:表示列表值。例如,1,2,5,7 在分钟字段表示在第1、2、5和7分钟执行。
  • -:表示范围值。例如,1-5 在小时字段表示从1点到5点之间的每个小时执行。
  • /:表示步长值。例如,*/5 在分钟字段表示每5分钟执行一次。
  • ?:表示不指定的值。只能用于日期和星期几字段,避免冲突。
  • L:表示最后的值。例如,L 在日期字段表示一个月的最后一天。
  • W:表示工作日(周一到周五)最近的某一天。例如,15W 在日期字段表示最接近15号的工作日。
  • #:表示某个月的第几个星期几。例如,3#2 在星期几字段表示某个月的第二个星期三。
//示例
* * * * *:每分钟执行一次。
0 * * * *:每小时的第0分钟执行一次。
0 0 * * *:每天午夜执行一次。
0 0 1 * *:每月1号的午夜执行一次。
0 0 * * 0:每周日的午夜执行一次。
0 0 1 1 *:每年11日的午夜执行一次。
*/5 * * * *:每5分钟执行一次。
0 9-17 * * 1-5:每周一到周五的9点到17点的每个小时的第0分钟执行一次。

c. 特殊字符串

  • @yearly@annually:每年一次,等同于 0 0 1 1 *
  • @monthly:每月一次,等同于 0 0 1 * *
  • @weekly:每周一次,等同于 0 0 * * 0
  • @daily@midnight:每天一次,等同于 0 0 * * *
  • @hourly:每小时一次,等同于 0 * * * *

六、 卸载

pm2 uninstall pm2-logrotate
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值