Rotation plus archivage de logs

Voici une petite mise à  jour du script de gestion de logs (rotation plus suppression)

Script pour purges permettant de faire une rotation de logs par date antérieure sur une fréquence donnée

– Nécessite la création d’un dossier archives

– Le script doit être présent en racine du répertoire défini par $DIR

Lancement du script :

/bin/bash purges.sh <fréquence 7-15>

Le script tar le contenu de traces de chaque appli et archive par date antérieur (j-1) puis efface le contenu de logs/*  .

Variables à renseigner  :

TAR=$DATE ».tar.gz » # archive la date
NOMARCHIVE= »archives » # archive la date
DIR= »/ »
LOGS=$DIR/ »logs »

———————————————————–

#!/bin/bash

# Ce script fait une rotation de logs et archive par dates dans une durée de  fréquences définies
# KILIAN DESROCHES – kilian@desroches.net
############################################################

#paramètre
# Script ./purges.sh <frequence 7-15>

FREQ= »$1″ # Frequence

# calcule la date du jour
DATE=`TZ=MET+24 date + »%Y%m%d »`
TAR=$DATE ».tar.gz » # archive la date
NOMARCHIVE= »archives » # archive la date
DIR= »/ »
LOGS=$DIR/ »logs »
if [ -d $DIR/$NOMARCHIVE ]; then

if [ -d $DIR/$NOMARCHIVE/$DATE ]; then

écho « dossier existant »

else
écho « Création d’un répertoire date dans le répertoire archives »
mkdir $DIR/$NOMARCHIVE/$DATE
fi
# supprime les vieux répertoires archives

écho « Suppression des anciens répertoires »
ls -d $DIR/$NOMARCHIVE/2* | sort | head -lines=-$FREQ | xargs rm -rf

écho « compression en cours des traces »

tar -czf $TAR $LOGS>/dev/null

if [ -f $DIR/$TAR ]; then
écho « Copie des tars »
cp  $DIR/$TAR $DIR/$NOMARCHIVE/$DATE/$TAR
rm  $DIR/$TAR
rm -rf $LOGS/*.txt

fi
else

écho « Pas de dossier archive existant »
exit 1

fi