Files
UTEC-Lic_ME_2024_2025/UTC502/24-11-26/TD/restore.sh
T
Guillaume-Sanchez ff4bb12d22 initial commit
2026-05-26 13:56:03 +02:00

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