2017-07-03 18:22:24 +02:00
|
|
|
#!/bin/bash
|
|
|
|
|
2023-03-13 10:21:42 +01:00
|
|
|
DATE="$(/bin/date +"%Y-%m-%d")"
|
2017-07-03 18:22:24 +02:00
|
|
|
HOMEPREFIX="/home"
|
|
|
|
|
|
|
|
rotate () {
|
|
|
|
mv $1 $1.$DATE
|
|
|
|
touch $1
|
|
|
|
chown $2 $1
|
|
|
|
chmod g+r $1
|
|
|
|
}
|
|
|
|
|
|
|
|
user_for() {
|
2023-03-13 10:21:42 +01:00
|
|
|
homedir="$(echo $1 | sed "s#\($HOMEPREFIX/\([^/]\+\)\).*#\1#")"
|
2017-07-03 18:22:24 +02:00
|
|
|
stat -L -c '%G' $homedir
|
|
|
|
}
|
|
|
|
|
|
|
|
for log in access.log access-*.log error.log; do
|
2023-03-13 10:21:42 +01:00
|
|
|
for i in $(ls -1 -d $HOMEPREFIX/*/log/$log 2>/dev/null | grep -v \.bak\.); do
|
|
|
|
USER="$(user_for $i)"
|
2017-07-03 18:22:24 +02:00
|
|
|
rotate $i root:$USER
|
|
|
|
done
|
|
|
|
done
|
|
|
|
|
|
|
|
for log in production.log delayed_job.log development.log test.log; do
|
2023-03-13 10:21:42 +01:00
|
|
|
for i in $(ls -1 -d $HOMEPREFIX/*/www/{,current/}log/$log 2>/dev/null | grep -v \.bak\.); do
|
|
|
|
USER="$(user_for $i)"
|
2017-07-03 18:22:24 +02:00
|
|
|
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 \
|
2017-08-23 03:30:38 +02:00
|
|
|
/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
|
|
|
|
2022-07-19 17:23:37 +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)
|
2022-07-19 17:23:37 +02:00
|
|
|
# and logs written during the zipping process might be lost.
|
2022-07-19 15:01:20 +02:00
|
|
|
|
2023-03-01 17:22:36 +01:00
|
|
|
for log in access.log*[!\.gz] access-*.log*[!\.gz] error.log*[!\.gz]; do
|
2023-03-13 10:21:42 +01:00
|
|
|
for i in $(ls -1 -d $HOMEPREFIX/*/log/$log 2>/dev/null | grep -v \.bak\.); do
|
2023-03-13 10:15:01 +01:00
|
|
|
if test -f "$i"; then
|
|
|
|
gzip "$i"
|
|
|
|
fi
|
2022-07-19 15:01:20 +02:00
|
|
|
done
|
|
|
|
done
|
|
|
|
|
2023-03-01 17:22:36 +01:00
|
|
|
for log in production.log*[!\.gz] delayed_job.log*[!\.gz] development.log*[!\.gz] test.log*[!\.gz]; do
|
2023-03-13 10:21:42 +01:00
|
|
|
for i in $(ls -1 -d $HOMEPREFIX/*/www/{,current/}log/$log 2>/dev/null | grep -v \.bak\.); do
|
2023-03-13 10:15:01 +01:00
|
|
|
if test -f "$i"; then
|
|
|
|
gzip "$i"
|
|
|
|
fi
|
2022-07-19 15:01:20 +02:00
|
|
|
done
|
|
|
|
done
|
|
|
|
|
2023-03-16 14:53:53 +01:00
|
|
|
exit 0
|