利用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 字节 请教大家这个是什么问题了,或者怎么排查这个问题呢
为什么在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 这样是没有问题的