Bonjour,
J'ai un script qui ressemble a ca :
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
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';
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)).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2Net::SSH: Can't bind socket to port 1023: Adresse déjà utilisée at prot.pl line xxx
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
Partager