Partage
  • Partager sur Facebook
  • Partager sur Twitter

Script qui se connecte en ssh et lance une action

    27 janvier 2017 à 14:22:25

    Bonjour

    Je cherche a faire un script qui devra se connecter en SSH a un serveur, envoie un fichier sur le serveur source, puis se déconnecte pour laisser le script continuer sur le serveur source

    ssh user@IP-CIBLE
    
    mkdir  -p /home/testmax
    tail -1 /etc/HP_Helion_version > /home/testmax/$HOSTNAME.test
    
    scp /home/testmax/$HOSTNAME.test user@IP-SOURCE:/users/login/testmax

    La suite de ce script est de refaire la même chose sur un second serveur cible

    Sauf que quand je lance ce script, il se connecte en ssh au serveur cible mais sans continuer le script, en gros toutes les commandes apres

    ssh user@IP-CIBLE 

    Ne sont pas effectuées

    Des idées pour qu'il effectue les commandes ? puis continue le script ?

    Merci

    -
    Edité par mmmax39 27 janvier 2017 à 14:37:21

    • Partager sur Facebook
    • Partager sur Twitter
      27 janvier 2017 à 18:07:50

      salut,

      ssh user@server <<eof
      cmd1
      cmd2
      eof
      
      scp user@server:fichierDistant /destinationLocale



      • Partager sur Facebook
      • Partager sur Twitter

      Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique

        30 janvier 2017 à 8:18:44

        Merci beaucoup pour la réponse c'est ce que je voulais

        Cependant un probleme subsiste

        ssh user@server <<eof
        mkdir  -p /home/testmax
        tail -1 /etc/HP_Helion_version > /home/testmax/$HOSTNAME.test
         
        scp /home/testmax/$HOSTNAME.test user@IP-SOURCE:/users/login/testmax
        eof


        Le script me dit qu'il n'a pas les droits car une fois connecté a la machine cible, la fonction $HOSTNAME prend la valeur de la machine source, au lieu de prendre le nom de la machine sur laquelle le script s'est connecté, cela rend le chemin incohérent :/

        Y a t'il moyen de remédier a ça sans écrire ce nom en dur dans le script ?

        -
        Edité par mmmax39 30 janvier 2017 à 10:23:31

        • Partager sur Facebook
        • Partager sur Twitter
          30 janvier 2017 à 17:21:57

          place le mot eof entre apostrophes : cela inhibe le développement des variables.

          ssh user@server <<'eof'


          mais pourquoi faire le scp depuis la connexion ssh ?

          quitte donc la connexion ssh, et réinitie scp depuis la machine locale.

          • Partager sur Facebook
          • Partager sur Twitter

          Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique

            31 janvier 2017 à 8:20:34

            J'ai eu quelques soucis avec les droits (spécifiques a ma boite), finalement j'ai pas pris eof

            mkdir -p /users/login/max/testmax
            
            
            ssh user@ip ' mkdir  -p /home/helion/testmax/ && \
            tail -1 /etc/HP_Helion_version > /home/helion/testmax/1.test'
            
            scp user@ip:/home/helion/testmax/1.test /users/login/max/testmax


            Tu as tout de même une solution pour mon $HOSTNAME ?

            Merci beaucoup

            • Partager sur Facebook
            • Partager sur Twitter
              31 janvier 2017 à 9:07:02

              la commande hostname devrait pouvoir suppléer HOSTNAME (qui n'existe d'ailleurs pas sous dash, et certain ksh).
              • Partager sur Facebook
              • Partager sur Twitter

              Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique

                31 janvier 2017 à 10:08:27

                En fait hostname fonctionne mais me renvoie le nom de ma machine source
                • Partager sur Facebook
                • Partager sur Twitter
                  31 janvier 2017 à 11:28:03

                  ce n'est pas normal. :/
                  une particularité de l'OS ?

                  montre-nous la commande ssh, stp.

                  -
                  Edité par dantonq 31 janvier 2017 à 11:30:20

                  • Partager sur Facebook
                  • Partager sur Twitter

                  Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique

                    31 janvier 2017 à 13:21:32

                    ssh user@ip ' mkdir  -p /home/helion/testmax/ && \
                    tail -1 /etc/HP_Helion_version > /home/helion/testmax/$HOSTNAME'
                     
                    scp user@ip:/home/helion/testmax/$HOSTNAME /users/login/max/testmax

                    -
                    Edité par mmmax39 31 janvier 2017 à 13:22:03

                    • Partager sur Facebook
                    • Partager sur Twitter

                    Script qui se connecte en ssh et lance une action

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown