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

Java Discussion :

Connexion à un serveur Unix


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 63
    Par défaut Connexion à un serveur Unix
    Bonjour à tous,

    Voilà mon problème : j'ai deux machines unix, et depuis la première (mon poste de travail) j'accède à la deuxième (le serveur) en faisant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rlogin -l username monserveur
    Je voudrais savoir comment je pourrais faire quelque chose d'équivalent en java ? (sans toucher le serveur, donc les sockets doivent pas marcher :s)

    En gros le but, c'est de se connecter au serveur, puis d'exécuter un "ls" pour récupérer la liste des fichiers dessus. Le problème est que quand on entre la commande ci-dessus, le prompt demande un mot de passe, et je sais pas trop comment gérer ça avec un truc du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    String[] cmd = {"/usr/bin/ksh","-c","rlogin -l username monserveur"};
    Runtime r = Runtime.getRuntime();
    Process p = r.exec(cmd);
    Merci d'avance !

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Lorsqu'on exécute une commande externe il faut impérativement traiter ses flux d'entrée/sortie !
    Plus d'info :




    Maintenant si c'est pour faire du rlogin, tu pourrais passer par du code 100% avec une librairie comme Apache Commons Net...


    a++

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 63
    Par défaut
    Merci pour le lien vers apache.commons.net, en effet je pense que c'est la solution de mon problème. Toutefois, je rencontre un problème en l'utilisant :
    Quand j'essaye ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    RLoginClient client = new RLoginClient();
    client.connect("monserveur");
    client.rexec("username", "password", "ls");
    J'obtiens l'erreur suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java.net.BindException: All ports in use or insufficient permssion
    Y a-t-il une différence entre les droits requis pour faire un rlogin en ligne de commande et en java ?

    Merci d'avance !

  4. #4
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 63
    Par défaut
    Il m'arrive la même chose quand je remplace

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    client.rexec("username", "password", "ls");
    par



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    client.rcommand("username", "username", "ls");
    Dans ce cas, ce qui est étonnant c'est qu'il n'y a pas de password à entre :s

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 63
    Par défaut
    Nouvel essai, en passant par les commandes unix

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Runtime r= Runtime.getRuntime();;
    String[] cmd = {"/usr/bin/ksh","-c","rlogin -l username serveur"};
    Process p = r.exec(cmd);
    p.getOutputStream().write("password".getBytes());
    p.getOutputStream().flush();
     
    String[] cmd2 = {"/usr/bin/ksh","-c","ls"};
    p = r.exec(cmd2);
    j'ai fait ça un peu au pif, je sais pas si ya une chance que ça marche en faisant qqch comme ça... En tout cas là ça ne marche pas -_-

Discussions similaires

  1. Réponses: 0
    Dernier message: 29/08/2014, 10h17
  2. Problème de connexion au serveur sous unix..
    Par da3_insa dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 26/10/2008, 12h53
  3. [ODBC] Connexion sur Access avec un serveur Unix
    Par Evenmor dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 01/07/2008, 09h57
  4. [C# 2.0]Connexion serveur Unix
    Par MoscoBlade dans le forum Windows Forms
    Réponses: 8
    Dernier message: 13/11/2007, 16h32
  5. [VB.NET] Connexion distante sur serveur UNIX
    Par Toftof dans le forum Windows Forms
    Réponses: 5
    Dernier message: 30/06/2004, 17h18

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