88 lines
2.8 KiB
Bash
Executable File
88 lines
2.8 KiB
Bash
Executable File
#!/bin/bash
|
|
#Script de restoration
|
|
|
|
#Utilisateur du serveur destinataire de la sauvegarde :
|
|
USER_DEST="user"
|
|
|
|
#Serveur destinataire de la sauvegarde :
|
|
ADDRESS_DEST="172.20.10.5" #adresse serveur distant
|
|
|
|
#Dossier du serveur destinataire de la sauvegarde
|
|
BACKUP_DIR_DEST="/home/user/rep_dest/"
|
|
|
|
#Dossier local de la receprtion de la sauvegarder, à créer si il n'existe pas, a modifier selon l'utilisateur
|
|
BACKUP_DIR="/home/nk/sauvegarde/"
|
|
|
|
SEPARATOR="--------------------"
|
|
|
|
#Début du script de restoration de /home
|
|
echo $SEPARATOR
|
|
echo "Debut du script de restauration de /home"
|
|
echo $SEPARATOR
|
|
|
|
#Tableau de la liste des fichiers de sauvegardes présentent sur le serveur dans /home/user/rep_dest/
|
|
filesList=($(ssh $USER_DEST@$ADRESS_DEST ls $BACKUP_DIR_DEST))
|
|
|
|
echo "Voici la liste des sauvegardes disponible sur $ADRESS_DEST dans le repertoir $BACKUP_DIR_DEST :"
|
|
echo
|
|
|
|
# Boucle For afin d'afficher les fichiers avec leur position dans le tableau devant :
|
|
for (( i=0; i<${#filesList[@]}; i++ ))
|
|
do
|
|
echo "$i-${filesList[$i]}" # Premier fichier
|
|
done
|
|
|
|
echo
|
|
echo $SEPARATOR
|
|
|
|
# Un read pour que l'utilisateur puissent entrer le numero de la sauvegarde qu'il veut
|
|
read -r -p "Choisir l'archive à restaurer : " numSauv
|
|
echo $SEPARATOR
|
|
|
|
#Place le nom de la sauvegarde voulu dans une variable OKZOU
|
|
NAME_SAVE=${filesList[$numSauv]}
|
|
echo "Vous avez choisi : $NAME_SAVE"
|
|
echo $SEPARATOR
|
|
|
|
# Je rentre dans un boucle "infini" mais controlé par une action utilisateur.
|
|
while true; do
|
|
|
|
# Un read pour que l'utilisateur puisse confirmer si oui ou non il veut restaurer
|
|
read -r -p "Lancer la restauration ? (o/n) " response
|
|
case "$response" in
|
|
[oO]|[yY]|oui|yes)
|
|
# Récupération avec le protoclole ssh (commande scp) de la sauvegarde présente sur le serveur, vers notre pc
|
|
echo "Reception de $NAME_SAVE dans $BACKUP_DIR"
|
|
scp $USER_DEST@$ADRESS_DEST:$BACKUP_DIR_DEST$NAME_SAVE $BACKUP_DIR
|
|
echo $SEPARATOR
|
|
|
|
# Extraction de l'archive à la racine (donc /) pour recepecter la structure des répertoires d'un chemin
|
|
echo "Extraction de la sauvegarde"
|
|
tar xvjf $BACKUP_DIR$NAME_SAVE -C /
|
|
echo $SEPARATOR
|
|
|
|
# Petit Nettoayage de la sauvegarde présent sur notre pc
|
|
echo "Nettoayage de $NAME_SAVE"
|
|
rm $BACKUP_DIR$NAME_SAVE
|
|
|
|
#Fin du script de Sauvegarde de /home
|
|
echo $SEPARATOR
|
|
echo "Fin du script de Restauration de /home"
|
|
echo $SEPARATOR
|
|
exit 0
|
|
;;
|
|
[nN]|non|no)
|
|
#Fin du script de Sauvegarde de /home
|
|
echo $SEPARATOR
|
|
echo "Fin du script de Restauration de /home"
|
|
echo $SEPARATOR
|
|
exit 0
|
|
;;
|
|
*)
|
|
echo "Erreur, merci d'entrer o ou n"
|
|
;;
|
|
esac
|
|
done
|
|
|
|
|