From 2e54944a246e21c56eaba0a8ee77cc71aec6b647 Mon Sep 17 00:00:00 2001 From: "William Hirigoyen (Evolix)" Date: Tue, 19 Jul 2022 15:01:20 +0200 Subject: [PATCH] [packweb-apache] Do gzip logs after web server reload instead of before to address 'file size changed while zipping' error. --- packweb-apache/files/userlogrotate | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/packweb-apache/files/userlogrotate b/packweb-apache/files/userlogrotate index 897c077b..deaf850a 100644 --- a/packweb-apache/files/userlogrotate +++ b/packweb-apache/files/userlogrotate @@ -5,7 +5,6 @@ HOMEPREFIX="/home" rotate () { mv $1 $1.$DATE - gzip $1.$DATE touch $1 chown $2 $1 chmod g+r $1 @@ -36,5 +35,21 @@ fi; test -x /usr/sbin/nginx && invoke-rc.d nginx rotate >/dev/null 2>&1 +# Zipping is done after web serveur reload, so that the file descriptor is released. +# Else, an error is raised (gzip file size changed while zipping) +# and logs written buring the zipping process might be lost. + +for log in access.log access-*.log error.log; do + for i in `ls -1 -d $HOMEPREFIX/*/log/$log 2>/dev/null | grep -v \.bak\.`; do + gzip $i + done +done + +for log in production.log delayed_job.log development.log test.log; do + for i in `ls -1 -d $HOMEPREFIX/*/www/{,current/}log/$log 2>/dev/null | grep -v \.bak\.`; do + gzip $i + done +done + # we want exit 0 true