William Hirigoyen (Evolix)
2e54944a24
All checks were successful
continuous-integration/drone/push Build is passing
56 lines
1.4 KiB
Bash
56 lines
1.4 KiB
Bash
#!/bin/bash
|
||
|
||
DATE=`/bin/date +"%d-%m-%Y"`
|
||
HOMEPREFIX="/home"
|
||
|
||
rotate () {
|
||
mv $1 $1.$DATE
|
||
touch $1
|
||
chown $2 $1
|
||
chmod g+r $1
|
||
}
|
||
|
||
user_for() {
|
||
homedir=`echo $1 | sed "s#\($HOMEPREFIX/\([^/]\+\)\).*#\1#"`
|
||
stat -L -c '%G' $homedir
|
||
}
|
||
|
||
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
|
||
USER=`user_for $i`
|
||
rotate $i root:$USER
|
||
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
|
||
USER=`user_for $i`
|
||
rotate $i $USER:$USER
|
||
done
|
||
done
|
||
|
||
test -x /usr/sbin/apache2ctl && if /etc/init.d/apache2 status > /dev/null ; then \
|
||
/etc/init.d/apache2 reload > /dev/null; \
|
||
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
|