#!/bin/bash # # 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 umask 0177 if [[ `hostname` == 'komaz' ]]; then logs_src=/var/log/firewall/ else exit 41 fi logs_dst="/home/squid/`hostname`/logs" if [ ! -d "$logs_dst" ]; then echo "Destination des logs inexistante" exit 42 fi # tant qu'il existe un fichier, le sauvegarder () while ( ls -tr "$logs_src" | grep -E 'logall\.log\.[0-9]+\..z2?' ); do dernier_fichier=$logs_src/$(ls -tr "$logs_src" | grep -E 'logall\.log\.[0-9]+\..z2?' | head -1) #timestamp=$(bzcat "$dernier_fichier" | head -1 | awk '{print $1}') #date=$(date -d "1970-01-01 $timestamp sec" +"%Y-%m-%d") Y=$(date | awk '{print $4}') Y=${Y:0:4} M=$(bzcat "$dernier_fichier" | head -1 | awk '{print $1}') M=$(date -d "01-$M-01" +%m) D=$(bzcat "$dernier_fichier" | head -1 | awk '{print $2}') D=$(date -d "01-01-$D" +%d) date=$Y-$M-$D [ -n "$QUIET" ] || { echo install -o root -g root -m 400 "$dernier_fichier" "$logs_dst/logall.log.$date.bz2" echo rm "$dernier_fichier" } install -o root -g root -m 400 "$dernier_fichier" "$logs_dst/logall.log.$date.bz2" rm "$dernier_fichier" done # Fin de boucle find "$logs_dst" -mtime +365 -delete