Bien bonjour à tous!

Aujourd’hui, nous allons découvrir comment gérer vos sauvegardes sur votre serveur FTP. Nous détaillerons dans cet article le script qui sera place sur le serveur FTP: il va vérifier que la sauvegarde à été bien effectuée et va dispatcher les sauvegardes dans un sous-dossier du nom du jour de la semaine.

1) Les variables

CHEMIN=/usr/local/apache/backup_sql         # chemin du répertoire de sauvegarde sur le serveur FTP

SERVEUR=’Nom_de_votre_serveur‘                          # nom du serveur a sauvegarder

FICHIER_LOG=~/compte-rendu.txt              # fichier texte du compte-rendu

DESTIN=’Votre adresse mail‘  # destinataire du compte-rendu

DATE_JOUR=$(date ‘+%Y %m %d’)               # date du jour sous forme numérique

JOUR_SEMAINE=$(date ‘+%w’)                  # jour de la semaine

2) Le script

# vérification paramètres: on définit la variable REPERTOIRE en fonction du jour de la semaine

case $JOUR_SEMAINE in

0)

REPERTOIRE=0_dimanche ;;

1)

REPERTOIRE=1_lundi ;;

2)

REPERTOIRE=2_mardi ;;

3)

REPERTOIRE=3_mercredi ;;

4)

REPERTOIRE=4_jeudi ;;

5)

REPERTOIRE=5_vendredi ;;

6)

REPERTOIRE=6_samedi ;;

*)

echo « L’argument fournit n’est pas valide »

exit ;;

esac

# effacement ancien texte du compte-rendu si existant

if [[ -e $FICHIER_LOG ]]

then

rm -f $FICHIER_LOG

fi

# texte du compte-rendu

echo « Compte-rendu de sauvegarde mysql du serveur $SERVEUR » > $FICHIER_LOG

date ‘+%a %d %B %H %M %S’ >> $FICHIER_LOG

echo >> $FICHIER_LOG

# on compte le nombre de fichiers .tar.gz présents dans le répertoire de sauvegarde

NOMBRE_GZ=$(ls -l $CHEMIN/*.tar.gz | wc -l)

# si le nombre est supérieur à 0, alors on transfert dans répertoire du jour

if [ $NOMBRE_GZ > 0 ]

then

# texte du compte-rendu

echo « La sauvegarde a été transférée par le serveur $SERVEUR » >> $FICHIER_LOG

echo >> $FICHIER_LOG


#on se positionne dans le bon répertoire

cd $CHEMIN/$REPERTOIRE

# on efface les anciennes archives du répertoire de destination

rm -rf ./*.tar.gz

echo « Les anciennes archives ont été effacées du repertoire $REPERTOIRE » >> $FICHIER_LOG

# on déplace les nouvelles sauvegardes

mv ../*.tar.gz .

else

# texte du compte-rendu

echo « La sauvegarde n’a pas été transférée par le serveur $SERVEUR » >> $FICHIER_LOG

fi

3) Envoi du compte rendu

# envoi du compte-rendu

mail -s »controle sauvegarde du serveur $SERVEUR » $DESTIN < $FICHIER_LOG

# effacement texte du compte-rendu

rm -f $FICHIER_LOG

Petit rappel: N’oubliez pas de convertir le fichier avec la commande dos2unix. Sinon votre fichier ne pourra pas être exécuté, notamment, les retours à la ligne vont envoyer les erreurs. Vous pouvez vérifier l’interprétation de votre fichier en utilisant la commande od.