解决方法
在轮换日志期间,消息可以以旧文件或新文件结束,但是以确定的方式. Logrotate对每个日志文件大致执行以下操作:
>将日志重命名为存档名称
>通知应用程序重新打开其日志
>可选择压缩日志文件
如果消息记录在1和2之间,则这些消息将在重命名的日志中结束,因为重命名不会影响打开的文件描述符(这也是压缩仅在应用程序重新打开日志后发生的原因).在2之后记录的消息将在新日志中结束.
这是我的logrotate配置的摘录,它执行我为Nginx’日志描述的内容:
/var/log/Nginx/*.log { compress delaycompress postrotate [ ! -f /run/Nginx.pid ] || kill -USR1 `cat /run/Nginx.pid` endscript }