#! /bin/bash # Variables à adapter DEST=/mnt/B26 CHEMINBACKUP=/mnt/backup/b14 I=1 B26=10.0.0.126 SOURCE=/home/info DATE=`date +%d_%B_%G_%T` # Options de rsync1 OPTIONS1="-vauz --progress --force --ignore-errors --exclude-from=/home/info/Gestion/Sauvegarde/Sauvegarde.lst" # Options de rsync2 OPTIONS2="-vauz --progress --del --force --ignore-errors --exclude-from=/home/info/Gestion/Sauvegarde/Sauvegarde.lst" # Pour ne pas réecrire la même chose function sauvegarde () { clear echo "" echo "" echo "Sauvegarde effectuée... " echo "" echo "" echo "Démontage de la partition de sauvegarde " echo "" echo "" echo "Bye Bye à Bientôt" sleep 1 } function demont () # Démontage de la partition de sauvegarde, pour ne pas faire de bêtise { sudo umount $DEST } function mont () # Montage de la partition pour faire la sauvegarde { echo "" echo "Montage de la partition de sauvegarde " echo "" sudo mount -t nfs $B26:$CHEMINBACKUP $DEST echo "" echo "Montage effectué" sleep 5 } function rsync1 () # Synchronisation en fonction de la date { rsync $OPTIONS1 $SOURCE/ $DEST } function rsync2 () # Synchronisation en fonction de la date et copie miroir { rsync $OPTIONS2 $SOURCE/ $DEST } # Démontage préventif demont clear #On teste la présence du poste de sauvegarde avant de le monter_____________________________________ echo "Vérification présence du poste B26 pour la sauvegarde" echo "" echo "" while [ $I -ne 0 ] ; do ping -c1 $B26 > NULL I=$? if [ $I == 0 ] then echo "Le poste B26 est présent" else echo "Le poste B26 est absent " echo "" echo "veuillez appeler le responsable informatique" ;sleep 10 ;exit fi echo "" echo "" done #___________________________________________________________________________________________________ mont #Montage de la partition - Appel de la fonction mont rm -f $SOURCE/NULL #On efface le fichier NULL créer par le test de présence echo "" export DAT1=`cat $SOURCE/Gestion/dat1_NE_PAS_EFFACER.txt` #lecture des fichiers pour les dates des sauvegardes export DAT2=`cat $SOURCE/Gestion/dat2_NE_PAS_EFFACER.txt` #_______________________________ pose la question et récupère la réponse clear echo "" #echo " Sauvegarde Normale, Miroir" echo "" echo "" echo "1) : Sauvegarde Normale" #echo " Mise à jour des fichiers" echo "" echo " Dernière sauvegarde le :" $DAT1 echo "" echo "2) : Sauvegarde Miroir " #echo " Mise à jour des fichiers et suppression des" #echo " fichiers n'existant plus sur la source" echo "" echo " Dernière sauvegarde le :" $DAT2 echo "" echo "" echo "" echo "3) : Quitter le programme" echo "" echo "" echo "" echo -n "Choix : " read reponse # Agit selon la réponse____________________________________________________________________________ case $reponse in 1) clear date +%d_%B_%G_'à'_%T > $SOURCE/Gestion/dat1_NE_PAS_EFFACER.txt #mise à jour du fichier date echo "" echo "Préparation des fichiers à la copie" echo "" echo "" rsync1 #appel de la fonction rsync1 pour la copie normal sauvegarde #appel de la fonction sauvegarde demont ;; #appel de la fonction demont #______________________________________________________________________ 2) clear date +%d_%B_%G_'à'_%T > $SOURCE/Gestion/dat2_NE_PAS_EFFACER.txt #mise à jour du fichier date echo "" echo "Préparation des fichiers à la copie" echo "" echo "" rsync2 #appel de la fonctione rsync pour la copie miroir sauvegarde #appel de la fonction sauvegarde demont ;; #appel de la fonction demont #______________________________________________________________________ 3) clear echo "" echo "" echo "" echo " Vous avez quitté le programme aucune donnée n'a été sauvegardées" echo "" echo "" echo "" echo " Bye Bye !! A bientôt" demont #appel de la fonction demont exit ;; #______________________________________________________________________ *) clear echo "" echo " Erreur, veuillez relancer la sauvegarde" echo "" echo "" echo " Aucune donnée n'a été sauvegardées" echo "" sleep 5 demont ;; #appel de la fonction demont esac #__________________________________________________________________________________________________