IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

Pb script SSH et PWD (print working directory)


Sujet :

Linux

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Pb script SSH et PWD (print working directory)
    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.

    cd /home/user/images
    /usr/local/bin/restauration

    Voulez -vous restaurez le dossier /home/user/images de 15H ?
    Sur ma machine , je lance le script via SSH depuis /home/user/images (montage).
    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.


    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 ?
    Toute aide sera la bienvenue.
    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

  2. #2
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 721
    Points : 31 044
    Points
    31 044
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par stillcut Voir le message
    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.
    Bon jusque là, je te suis

    Citation Envoyé par stillcut Voir le message
    Sur ma machine , je lance le script via SSH depuis /home/user/images (montage).
    Alors là, si tu te trouves toujours sur ta machine, pourquoi passer par ssh ?
    Si tu te trouves sur ta machine et que tu veux travailler sur un répertoire qui est vu comme "appartenant à ta machine" (même si c'est un montage NFS), tu peux travailler directement. C'est justement le but de NFS => faire en sorte que l'utilisateur voit un répertoire réseau comme s'il était local !!!

    Citation Envoyé par stillcut Voir le message
    SSH remonte directement à la racine dans mon homedir et y execute ma commande pwd , d'ou le plantage.


    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 ?
    Normal. Le ssh te place sur le serveur alors que ton cd du dessus était local. Faut inclure le cd dans le ssh
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ssh nom_du_serveur  "cd /home/user/images; /usr/local/bin/restauration"

Discussions similaires

  1. Working Directory avec OC4J
    Par moezsokrati dans le forum Forms
    Réponses: 3
    Dernier message: 11/12/2008, 18h43
  2. [Continuum] Api XmlRpc, working-directory/build-output-directory
    Par dev09 dans le forum Intégration Continue
    Réponses: 1
    Dernier message: 23/11/2007, 11h58
  3. SVN et Working directory
    Par cchevalier72 dans le forum Eclipse
    Réponses: 1
    Dernier message: 06/11/2007, 17h11
  4. Problème script ssh
    Par Syl91 dans le forum Linux
    Réponses: 23
    Dernier message: 03/09/2006, 16h47
  5. Aider un novice à créer un script ssh
    Par Thierry8 dans le forum Réseau
    Réponses: 2
    Dernier message: 24/03/2006, 08h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo