first step to improve userlogrotate in Debian 9

This commit is contained in:
Gregory Colpart 2017-08-23 03:30:38 +02:00
parent e10e971dbe
commit 5bbec8f829
3 changed files with 57 additions and 7 deletions

View file

@ -23,11 +23,6 @@ for log in access.log access-*.log error.log; do
done
done
for i in `ls -1 -d $HOMEPREFIX/*/log/php.log 2>/dev/null | grep -v \.bak\.`; do
USER=`user_for $i`
rotate $i www-$USER:$USER
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`
@ -35,4 +30,8 @@ for log in production.log delayed_job.log development.log test.log; do
done
done
apache2ctl restart > /dev/null
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

View file

@ -0,0 +1,38 @@
#!/bin/bash
DATE=`/bin/date +"%d-%m-%Y"`
HOMEPREFIX="/home"
rotate () {
mv $1 $1.$DATE
gzip $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 i in `ls -1 -d $HOMEPREFIX/*/log/php.log 2>/dev/null | grep -v \.bak\.`; do
USER=`user_for $i`
rotate $i www-$USER:$USER
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
apache2ctl restart > /dev/null

View file

@ -1,5 +1,10 @@
---
- fail:
msg: only compatible with Debian >= 8
when:
- ansible_distribution != "Debian" or ansible_distribution_major_version | version_compare('8', '<')
- name: Include apache role
include_role:
name: apache
@ -30,11 +35,19 @@
- access.log
- error.log
- name: Install userlogrotate
- name: "Install userlogrotate (jessie)"
copy:
src: userlogrotate_jessie
dest: /etc/cron.weekly/userlogrotate
mode: "0755"
when: ansible_distribution_release == "jessie"
- name: "Install userlogrotate (Debian 9 or later)"
copy:
src: userlogrotate
dest: /etc/cron.weekly/userlogrotate
mode: "0755"
when: ansible_distribution_major_version | version_compare('9', '>=')
- name: Force DIR_MODE to 0750 in /etc/adduser.conf
lineinfile: