pm2 + logrotate 每日日志切割日志乱转以后, 新日志继续写到xxx.log-20150731中
发布于 4 年前 作者 lik0914 11817 次浏览 最后一次编辑是 3 年前 来自 问答

利用pm2 reloadLogs日志切割 每日执行 logrotate 配置

/var/log/pm2/*.log {
        daily
        missingok
        rotate 5 
        compress
        delaycompress
        notifempty
        create 640 root root
        sharedscripts
        postrotate
            pm2 reloadLogs
        endscript
}

logrotate -vdf /etc/logrotate.d/pm2 这样查看也是没哟错误,最后也执行了, pm2 reloadLogs 手动执行 logrotate -f /etc/logrotate.d/pm2 结果也是正常的, 最后也按日期生成了日志文件server-04.access-1.log-20150731, 新日志继续写到server-04.access-1.log中。 但是, 按照每日自动执行, 备份的日志文件生成 server-04.access-1.log-20150731, 但是新日志继续写入的文件不正常 还继续写入到server-04.access-1.log-20150731 中, server-04.access-1.log 这个文件 0 字节 请教大家这个是什么问题了,或者怎么排查这个问题呢

3 回复

为什么在logrotate 执行 pm2 reloadLogs 有问题呢,日志刷新不了, 这个是什么问题呢

what are you talking about? logrotate 只是一个类crontab,作用是周期性做同一件事情,pm2 reloadLogs 是重新将日志写入你规定的日志文件里,他并不会写入第二个地方,所以即使你用logrotate生成新的日志文件,他仍然只会写入pm2启动时的日志文件。你所需要仅仅是mv之前的,pm2 reloadLogs一下就好。

@haozxuan 确实出现了这种情况, 确保 pm2 reloadLogs执行了,但是crontab类就有问题了 logrotate -f /etc/logrotate.d/pm2 这样是没有问题的

回到顶部