Lancer une application dans un autre shell

Bonjour,

Je dois ecrire un script shell qui utilise le résultat d'un programme (en java) qui doit être lancé sur un serveur.

Pour cela je me connecte automatiquement avec ssh au serveur dans mon script (aprés avoir lancé ssh-agent)

Mais comment puis-je faire pour lancer ce programme qui se trouve sur le serveur avec des arguments que je lui donne et récupérer le resultat dans mon script sur le client.

En d'autres termes je n'arrive pas à lancer une commande dans la nouvelles session que j'ai ouverte à distance sur ce servuer.

Merci d'avance

5 réponses

  1. Quelques precisions :

    J'ai trouvé des éléments de réponses là : http://linuxfr.org/forums/26/4127.html

    En fait mon probléme et que je dois lancer ce prog en java sur le serveur car java n'est pas installé sur le client.

    dans mon script j'ai essyé :

    ssh test@*.*.*.* `java -jar prog.jar <arg>`

    mais il me retourne :

    ./nomduscript: java: command not found
    et me laisse logué sur le serveur en tant que test???

    Comment faire?
    0
    1. Webmaster
      Arf,
      Donnes le chemin complet du programme java a executer, il ne doit pas se trouver dans le repertoire de l'utilisateur test. ;-)

      ++
      ...Mana mana
         Tutudutu...
      0
  2. Webmaster
    Bonjour,

    Un debut de réponse ici:
    http://www.commentcamarche.net/forum/affich-1069077
    ssh serveur "commande1" | commande2
    ssh serveur "commande1" > resultats
    Dans les deux cas, commande1 s'execute sur le serveur.
    Dans le premier le resultat est redirigé vers le client et traité par commande2 localement, dans le second, le resultat et simplement enregistré dans le fichier resultat sur le client :)

    @++
    ...Mana mana
       Tutudutu...
    0
    1. Avant tout : merci beaucoup pour vos réponses si rapides!
      (à ce rythme ce n'est plus un forum c'est une hotline!)

      Cependant bien que je lui spécifie le chemin exact cela ne marche toujours pas : il ne reconnait pas la commande java

      ssh test@*.*.*.* `/usr/local/java/bin/java -jar /home/test/prog.jar 01`

      Pourtant quand je lance sur le serveur :
      /usr/local/java/bin/java -jar /home/test/prog.jar 01
      ça marche donc les chemins sont bons??

      Ceci dit cela marche trés bien avec un ls par exemple.
      0
      1. Ca y est j'ai trouvé!

        Attention c'est trés con :

        Il suffit de remplacer les backquote ` par des apostrophes ' dans

        ssh test@*.*.*.* `/usr/local/java/bin/java -jar /home/test/prog.jar 01`

        et tout s'arrange!

        c'est formidable!
        merci pour votre aide.
        0
        1. ça marche encore mieux avec "

          j'avais pas fais attention dans le message de asevere
          Comme quoi suffit de bien lire les reponses!

          merci encore
          0