如果线上使用logrotate切割日志会出现切割后,新的日志输出还是会写在老的日志
解决方法
网上查下来有两种解决方法,两种方式我都尝试了切割nginx日志,但是只成功了第一种
(1)通过copytruncate参数
copytruncate参数的原理:将之前的日志内容拷贝走作为备份,接着清空当前文件。这个方法会存在丢失部分日志数据的可能
/app/nginx/logs/access.log { daily dateext rotate 14 compress delaycompress missingok notifempty copytruncate create 0664 root root }
|
(2)给rsyslog发信号
这个方法我试过了,但是没有成功,新的日志还是输出在老的日志文件中
/app/nginx/logs/access.log { daily dateext rotate 14 compress delaycompress missingok notifempty create 0664 root root postrotate /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true endscript }
|