#! /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