Bonjour à tous et déjà merci de me lire.
Alors , dans une architecture client/serveur , je cherche à écrire un script qui doit (entre autres) permettre de restaurer par l'utilisation des snapshots (LVM) le répertoire ou se trouve l'utilisateur quand il lance le script.
Exemple :
Sur le serveur même, je me rend dans /home/user/images et lance le script en local ,
j'obtiens une proposition de restauration pour le dossier /home/user/images.
Parfait.
Sur ma machine , je lance le script via SSH depuis /home/user/images (montage).cd /home/user/images
/usr/local/bin/restauration
Voulez -vous restaurez le dossier /home/user/images de 15H ?
J'obtiens une proposition de restauration pour le dossier /home/user.
Raté !
SSH remonte directement à la racine dans mon homedir et y execute ma commande pwd , d'ou le plantage.
Toute aide sera la bienvenue.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 cd /home/user/images ssh nom_du_serveur /usr/local/bin/restauration Voulez -vous restaurez le dossier /home/user/ de 15H ?
Ci-dessous , ce merveilleux code à l'indentation toute particuière.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89 #!/bin/bash rep=$(pwd) echo "$rep" represtau=`echo $rep | sed -e "s/\/home//"` heure=$(date '+%H') echo "" echo -n "Souhaitez vous restaurer le dossier $rep de $heure H (y/n)" echo "" read reponse echo "" if [ "$reponse" = "y" ]; then echo "RESTAURATION REPERTOIRE EN COURS" echo "Création du point de montage" sudo -s /bin/mkdir /mnt/snaps/home.$heure\h00 echo "Montage du snapshot" /bin/mount /dev/VG0/home.$heure\h00 /mnt/snaps/home.$heure\h00 echo "Copie depuis $rep vers homedir" cp -a /mnt/snaps/home.$heure\h00$represtau /$rep.snap echo "Démontage du snapshot" /bin/umount /dev/VG0/home.$heure\h00 /mnt/snaps/home.$heurerestau\h00 echo "Suppression du point de montage" rm -rf /mnt/snaps/home.$heurerestau\h00 echo "RESTAURATION TERMINEE" elif [ "$reponse" = "n" ]; then echo -n "Souhaitez vous restaurer un document ou un dossier (document/dossier)" echo "" read reponse2 echo "" if [ "$reponse2" = "document" ]; then echo "Veuillez entrer le chemin vers le document-cible" echo "Exemple /nom/Documents/important/documentarestaurer" read doccible echo "Veuillez indiquer l'heure de la restauration à effectuer(08-19)" read docheure echo "Etes-vous sur de vouloir restaurer le document $doccible de $docheure H ? (y/n)" read reponsedoc if [ "$reponsedoc" = "y" ]; then echo "RESTAURATION DOC EN COURS" echo "Création du point de montage" sudo -s /bin/mkdir /mnt/snaps/home.$docheure echo "Montage du snapshot" /bin/mount /dev/VG0/home.$docheure /mnt/snaps/home.$docheure echo "Copie depuis /mnt vers homedir" cp -a /mnt/snaps/home.$docheure\h00$doccible /home$doccible.snap echo "Démontage du snapshot" /bin/umount /dev/VG0/home.$docheure /mnt/snaps/home.$docheure echo "Destruction du point de montage" rm -rf /mnt/snaps/home.$docheure echo "RESTAURATION TERMINEE" elif [ "$reponsedoc" = "n" ]; then echo "A votre demande, le script de restauration va se terminer" else echo "Erreur, veuillez relancer le script de restauration" fi exit elif [ "$reponse2" = "dossier" ]; then echo "Veuillez entrez le chemin vers le répertoire cible" echo "Exemple /user/dossier/arestaurer" read repcible echo "Veuillez indiquer l'heure de la restauration à effectuer(08-19)" read repheure echo "Etes-vous sur de vouloir restaurer le repertoire /home$repcible de $repheure H ? (y/n)" read reponserep if [ "$reponserep" = "y" ]; then echo "RESTAURATION REPERTOIRE EN COURS" echo "Création du point de montage" sudo -s /bin/mkdir /mnt/snaps/home.$repheure echo "Montage du snapshot" /bin/mount /dev/VG0/home.$repheure /mnt/snaps/home.$repheure echo "Copie depuis /mnt vers homedir" cp -a /mnt/snaps/home.$repheure\h00$repcible /home$repcible.snap echo "Démontage du snapshot" /bin/umount /dev/VG0/home.$repheure /mnt/snaps/home.$repheure echo "Destruction du point de montage" rm -rf /mnt/snaps/home.$repheure echo "RESTAURATION TERMINEE" elif [ "$reponserep" = "n" ]; then echo "A votre demande, le script de restauration va se terminer" else echo "Erreur, veuillez relancer le script de restauration" fi exit fi else echo "Erreur, veuillez relancer le script de restauration" fi exit
Partager