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

Programmation et administration système Perl Discussion :

Net::SSH::Perl Can't bind socket to port 1023: Adresse déjà utilisée


Sujet :

Programmation et administration système Perl

  1. #1
    Membre averti Avatar de sohnic
    Femme Profil pro
    bioinfo
    Inscrit en
    Mai 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : bioinfo

    Informations forums :
    Inscription : Mai 2003
    Messages : 426
    Points : 434
    Points
    434
    Par défaut Net::SSH::Perl Can't bind socket to port 1023: Adresse déjà utilisée
    Bonjour,
    J'ai un script qui ressemble a ca :

    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
     
    use strict;
    use Net::SSH::Perl;
    my $ssh='serveur.fr';
    my $username='login';
    my $pass='password';
    my $ssh = Net::SSH::Perl->new($host); # ca plante ici
    $ssh->login($username, $pass);
     
    for($i=0;$i<10;$i++)
    {
           my $ch='un_script_perl avec ses arguments';
           ($stdout, $stderr, $exit) = $ssh->cmd($ch); # ou ca plante ici
           print $stdout;
    }	
     
    print 'Fini';
    En general, ca marche, et parfois, en cours de boucle, j'ai ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Net::SSH: Can't bind socket to port 1023: Adresse déjà utilisée at prot.pl line xxx
    Le gros hic, c'est que non seulement ce tour de boucle n'est pas realisé, mais qu'en plus le script s'arrete la (je n'ai pas le print 'Fini'; (en realité, le script fait autre chose que cet affichage)).
    J'ai essayé d'enrober mes acces ssh dans un if, mais rien n'y fait, le script s'arrete.
    Cet arret est aleatoire, parfois il n'y en a pas.
    J'ai aussi essayé en mettant la connexion dans la boucle. Meme resultat.

    Avec scp, je n'ai pas vu de probleme (est-ce un hasard ?).

    Bref, auriez-vous une solution a mon probleme ? Ou un moyen de capturer l'erreur et de retenter la connexion ou au moins de ne pas interrompre le script ?
    J'ai regardé dans la FAQ, le forum et bien sur Google, ...sans succes.

    Merci pour votre aide,

    Sohnic
    http://www.noctinfo.fr/

    (\ _ /)
    (='.'=) Voici Lapinou. Aidez-le à conquérir le monde en le reproduisant.
    (")-(")

  2. #2
    Membre chevronné
    Avatar de Woufeil
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    1 076
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 1 076
    Points : 2 004
    Points
    2 004
    Par défaut
    Citation Envoyé par sohnic
    Bref, auriez-vous une solution a mon probleme ? Ou un moyen de capturer l'erreur et de retenter la connexion ou au moins de ne pas interrompre le script ?
    J'ai regardé dans la FAQ, le forum et bien sur Google, ...sans succes.

    Merci pour votre aide,

    Sohnic
    Et bien, tu peux au moins gérer se problème avec des exeptions... Renseigne toi sur les blocs eval et la sur la variable $@ , cela peut au moins te permettre de capturer l'erreur et de relancer ton programme...

    Sinon, tu peux attende que le port soit libre avant de lancer la connection, tout dépend de la fréquence de ton problème : si il est fréquent la seconde solution est nécéssaire, sinon la première solution est viable.
    "En essayant continuellement, on finit par réussir. Donc : plus ça rate, plus on a de chances que ça marche" (devise Shadock)
    Application :

    ainsi qu'à regarder la avant de poser une question.

    La rubrique Perl recrute, contactez-moi.

  3. #3
    Membre averti Avatar de sohnic
    Femme Profil pro
    bioinfo
    Inscrit en
    Mai 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : bioinfo

    Informations forums :
    Inscription : Mai 2003
    Messages : 426
    Points : 434
    Points
    434
    Par défaut
    Merci de t'etrre penché sur le probleme.
    Effectivement, en intercalant des pauses, le port se libere a temps pour le second tour. Mais comme c'est un script utilisé par un serveur apache (suceptible de lancer plusieurs process simultanement), ... pas tres commode. J'ai donc realisé la manip avec un script PHP, lancé dans un "system". Ca marche tres bien. Premiere partie reussie !

    Maintenant, reste la seconde... qui risque de faire l'objet d'un prochain post.

    A bientot donc !
    Sohnic
    http://www.noctinfo.fr/

    (\ _ /)
    (='.'=) Voici Lapinou. Aidez-le à conquérir le monde en le reproduisant.
    (")-(")

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Perl et Net::SSH::Perl::Auth
    Par SoukoussMan dans le forum Langage
    Réponses: 7
    Dernier message: 23/09/2010, 15h36
  2. Net::SSH:Perl - Perl.pm
    Par pratheep dans le forum Programmation et administration système
    Réponses: 2
    Dernier message: 25/01/2009, 21h21
  3. Perl - Net::SSH:Perl
    Par pratheep dans le forum Modules
    Réponses: 3
    Dernier message: 24/11/2008, 20h09
  4. Net::ssh::perl->cmd ne marche pas
    Par Songohan dans le forum Modules
    Réponses: 8
    Dernier message: 21/11/2008, 10h56
  5. Réponses: 6
    Dernier message: 04/11/2008, 09h51

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