Sauvegarde et compression des logs du proxy.

Serveur : Proxy administratif (delegate)
Utilité : On me demande de sauvegarder TOUS les logs des requetes effectuées sur le proxy.
Le problème est qu’en un mois, ces logs atteignent une taille de plusieurs Go.
J’ai donc du créer un script permettant de compresser ces logs, et de les classer pour une lecture plus évidente par la suite.

Ce « cron » à été ensuite mis en place (via « crontab ») pour lancer le script de compression / sauvegarde tous les soirs à 22h00.

  • cron_lancement_script_sav_log_proxy

00 22 * * 0 /root/savlog_proxy
  • Et voici le script :
#!/bin/sh

# Ce script permet de sauvegarder les journaux crees par delegate en les compressant, et de reinitialiser ceux situes dans
# /var/spool/delegate-nobody/log/
# Il est conseille de le lancer une fois par semaines (selon la taille de vos logs) le week end de preference via cron.
# Pour toute aide ou questions, veuillez me contacter à l’adresse suivante : boulat@yahoo.fr
# Guillaume Boulaton.

# Renseignement des variables
DATE=$(date +%y-%m-%d)
DOSSIER_SAV=/root/Sauvegardes_log_delegate
DOSSIER_LOG=/var/spool/delegate-nobody/log

echo « ——————————- »

# Creation du dossier « $DOSSIER_SAV » si celui ci n’existe pas :
if [ -d $DOSSIER_SAV ]

then echo « Repertoire « $DOSSIER_SAV » present. OK »

else mkdir $DOSSIER_SAV && echo « Le repertoire $DOSSIER_SAV a bien ete cree. »
fi

# Creation d’un lien symbolique vers le repertoire d’origine dans le dossier de sauvegarde
ln -s $DOSSIER_LOG $DOSSIER_SAV

echo «  »

# Sauvegardes les fichiers logs dans /root/log_delegate/
cp $DOSSIER_LOG/8080 $DOSSIER_SAV/8080
cp $DOSSIER_LOG/8080.http $DOSSIER_SAV/8080.http
cp $DOSSIER_LOG/1080 $DOSSIER_SAV/1080

# Compression des anciens logs
gzip -v -9 $DOSSIER_SAV/8080
gzip -v -9 $DOSSIER_SAV/8080.http
gzip -v -9 $DOSSIER_SAV/1080

# Rename des fichiers .gz ainsi crees en y ajoutant la date.
mv $DOSSIER_SAV/8080.gz $DOSSIER_SAV/$DATE.8080.gz
mv $DOSSIER_SAV/8080.http.gz $DOSSIER_SAV/$DATE.8080.http.gz
mv $DOSSIER_SAV/1080.gz $DOSSIER_SAV/$DATE.1080.gz

# Remise a zero des fichiers logs originaux
touch /dev/null > $DOSSIER_LOG/8080
touch /dev/null > $DOSSIER_LOG/8080.http
touch /dev/null > $DOSSIER_LOG/1080

echo «  »
echo « La sauvegarde de vos fichiers .log 8080, 8080.http et 1080 s’est bien effectuee. »