#! /bin/bash # license GPL # Variables du serveur hte host=10.0.0.126 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 recrire la mme chose function sauvegarde_effectue () { clear echo "" echo "" echo "Sauvegarde effectue... " echo "" echo "" echo "Dmontage de la partition de sauvegarde " echo "" echo "" echo "Bye Bye Bientt" sleep 1 } function demont () # Dmontage de la partition de sauvegarde, pour ne pas faire de btise { 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__________________ # Dmontage prventif demont clear #On teste la prsence du poste de sauvegarde avant de le monter_____________________________________ echo "Vrification prsence 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 prsent" 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 crer par le test de prsence 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 rcupre la rponse reponse= until ["$reponse" = "4"] ; do clear echo "" echo " Sauvegarde des donnes " echo "" echo "" echo "" echo "1) Sauvegarde Normale effectue le :" $afficher_date1 echo "" echo "2) Sauvegarde Miroir effectue 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 rponse____________________________________________________________________________ case $reponse in 1) clear date +%d_%B_%G_''_%T > $fichier_a_copier/$date1 #mise jour du fichier date echo "" echo "Prparation 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 "Prparation 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 donne n'a t sauvegardes" echo "" echo "" echo "" echo " Bye Bye !! A bientt" demont #appel de la fonction demont exit ;; #______________________________________________________________________ *) echo "" echo "" echo "veuillez presser 1, 2, 3, ou 4" sleep 2 clear ;; esac #___________________________________________________________________________________________ done