initial commit
This commit is contained in:
Executable
+87
@@ -0,0 +1,87 @@
|
||||
#!/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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user