ansible-roles/packweb-apache/files/userlogrotate

56 lines
1.4 KiB
Plaintext
Raw Normal View History

2017-07-03 18:22:24 +02:00
#!/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
2017-09-28 11:10:25 +02:00
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
2017-09-28 11:10:25 +02:00
# Zipping is done after web server reload, so that the file descriptor is released.
2022-07-19 15:04:25 +02:00
# Else, an error is raised (gzip file size changed while zipping)
# and logs written during 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
2017-09-28 11:10:25 +02:00
# we want exit 0
true