firewall-logrotate-script.sh 1.15 KB
Newer Older
1
#!/bin/bash
2 3 4 5
#
# Script de sauvegarde régulière des logs firewall vers le nfs
#
# Reste silencieux en cas de succès si la variable d'env $QUIET est non vide
6 7 8 9

umask 0177

if [[ `hostname` == 'komaz' ]]; then
10 11 12
    logs_src=/var/log/firewall
elif [[ `hostname` == 'odlyd' ]]; then
    logs_src=/var/log/firewall
13 14 15
else
    exit 41
fi
16
logs_dst="/home/logs/`hostname`"
17 18 19 20 21 22

if [ ! -d "$logs_dst" ]; then
    echo "Destination des logs inexistante"
    exit 42
fi

23
# tant qu'il existe un fichier, le sauvegarder (<!>)
24
while ( ls -tr "$logs_src" | grep -E -q 'logall\.log\.[0-9]+\..z2?' ); do
25 26
dernier_fichier=$logs_src/$(ls -tr "$logs_src" | grep -E 'logall\.log\.[0-9]+\..z2?' | head -1)

27 28
#timestamp=$(bzcat "$dernier_fichier" | head -1 | awk '{print $1}')
#date=$(date -d "1970-01-01 $timestamp sec" +"%Y-%m-%d")
29
date=$(bzcat "$dernier_fichier"  | head -1 | awk -F 'T' '{print $1}')
30
[ -n "$QUIET" ] || {
31 32
echo install -o root -g root -m 400 "$dernier_fichier" "$logs_dst/logall.log.$date.bz2"
echo rm "$dernier_fichier"
33
}
34 35 36
install -o root -g root -m 400 "$dernier_fichier" "$logs_dst/logall.log.$date.bz2"
rm "$dernier_fichier"
done
37
# Fin de boucle </!>
38
find "$logs_dst" -mtime +365 -delete