#! /bin/bash # Variables du serveur hôte host=10.0.0.xxx chemin_backup_host=/mnt/backup/b14 # Variables du client dest=/mnt/B26 I=1 fichier_a_copier=/home/info date1=Gestion/dat1_NE_PAS_EFFACER.txt date2=Gestion/dat2_NE_PAS_EFFACER.txt exclude=/home/info/Gestion/Sauvegarde/exclude.lst # Options Rsync1 et Rsync2 option1="-vauz --progress --force --ignore-errors --exclude-from=$exclude" option2="-vauz --progress --del --force --ignore-errors --exclude-from=$exclude" # Pour ne pas réecrire la même chose function sauvegarde_effectue () { 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 $host:$chemin_backup_host $dest echo "" echo "Montage effectué" sleep 5 } function rsync1 () # Synchronisation en fonction de la date { rsync $option1 $fichier_a_copier/ $dest } function rsync2 () # Synchronisation en fonction de la date et copie miroir { rsync $option2 $fichier_a_copier/ $dest } #_________________ en avant la musique__________________ # 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 $host > 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 $fichier_a_copier/NULL #On efface le fichier NULL créer par le test de présence echo "" export afficher_date1=`cat $fichier_a_copier/$date1` #lecture des dates de sauvegardes export afficher_date2=`cat $fichier_a_copier/$date2` #_______________________________ pose la question et récupère la réponse reponse= until ["$reponse" = "4"] ; do clear echo "" echo " Sauvegarde des données " echo "" echo "" echo "" echo "1) Sauvegarde Normale effectuée le :" $afficher_date1 echo "" echo "2) Sauvegarde Miroir effectuée le :" $afficher_date2 echo "" echo "___" echo "" echo "3) edition du fichier exclude.lst > exclusion de fichier" echo "" echo "___" echo "" echo "4) : 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 > $fichier_a_copier/$date1 #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_effectue #appel de la fonction sauvegarde demont ;; #appel de la fonction demont #______________________________________________________________________ 2) clear date +%d_%B_%G_'à'_%T > $fichier_a_copier/$date2 #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_effectue #appel de la fonction sauvegarde demont ;; #appel de la fonction demont #______________________________________________________________________ 3) echo "" doexec /usr/bin/kwrite open $exclude clear echo "" echo "" echo "le fichier exclude à été édité retour au menu" sleep 5 ;; 4) 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 ;; #______________________________________________________________________ *) echo "" echo "" echo "veuillez presser 1, 2, 3, ou 4" sleep 2 clear ;; esac #___________________________________________________________________________________________ done