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:
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:
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