[Perl]Net::SSH2 Verifier la connexion
fxtaa
Messages postés
1050
Date d'inscription
Statut
Membre
Dernière intervention
-
Mr_Djez -
Mr_Djez -
Bonjour,
j'utilise le module ssh2 de perl pour me connecter a un certain nombre de machine à la suite. Malheureusement, lorsqu'une des machines ne répond pas, le script plante...
J'ai essayé d'enlever les "or die" mais ca n'a rien changé.
L'erreur est à la ligne "$ssh2->connect($HOST)"
Je souhaiterai effectuer un test de connexion sans pour autant faire planter le script si une machine ne répond pas.
Voici le code :
Cordialement.
Fxta
j'utilise le module ssh2 de perl pour me connecter a un certain nombre de machine à la suite. Malheureusement, lorsqu'une des machines ne répond pas, le script plante...
J'ai essayé d'enlever les "or die" mais ca n'a rien changé.
L'erreur est à la ligne "$ssh2->connect($HOST)"
Je souhaiterai effectuer un test de connexion sans pour autant faire planter le script si une machine ne répond pas.
Voici le code :
use Net::SSH2 ; my $ligne; open ( FILE , "pass.txt" ) or die "Erreur interne pass.txt\n" ; while ( $ligne = <FILE> ) { @t = split(";" , $ligne ) ; for ( my $i = 0 ; $i <= $#t; $i ++) { if ( $i == 0 ) { $serveur=$t[$i]; $i ++; } if ( $i == 1 ) { $log=$t[$i]; chomp ($log); $i ++; } if ( $i == 2 ) { $pass=$t[$i]; chomp ($pass); } } #connexion SSH my $HOST = "$serveur" ; my $LOGIN = "$log" ; my $PWD = "$pass" ; my $CMD = "COMMANDE A EXECUTER" ; my $ssh2 = Net::SSH2->new(); print "Connexion au serveur $HOST :" ; $ssh2->connect($HOST) or die "Unable to connect to $HOST, $! $@" ; $ssh2->auth_password( $LOGIN , $PWD ) or die "Unable to login $!" ; $ssh2->debug(0); print " OK\n" ; $CMD =~ s/;/ 2>\&1;/g ; # Execution de $CMD my $channel = $ssh2->channel(); $channel->blocking(1); $channel->exec( $CMD ); my $result = "" ; while( $channel->read( my $buffer , 4096 ) ) { $result .= $buffer ; } print "<STDOUT>\n" ; print "$result \n" ; print "<fin STDOUT>\n" ; $channel->close; $ssh2->disconnect(); print "SSH OK\n" ; }
Cordialement.
Fxta
A voir également:
- [Perl]Net::SSH2 Verifier la connexion
- Net framework 2.0 - Télécharger - Divers Utilitaires
- Paint net - Télécharger - Dessin & Illustration
- Logo .net - Télécharger - Études & Formations
- Net framework 4.0 - Télécharger - Divers Utilitaires
- Onoffapp net - Forum Vos droits sur internet
2 réponses
Salut;
je pense que depuis le temps tu a du trouver... mais:
tu pourrai mettre le "$ssh2->connect($HOST)" dans une condition:
if ( $ssh2->connect($HOST) ) {
.
.
.
}
else {
.
.
.
}
et même aller plus loin ;) :
if ( $ssh2->connect($HOST) ) {
print q(Ok\tconnect\n);
if ( $ssh2->auth_password( $LOGIN , $PWD ) ) {
print q(Ok\tauth_passwordt\n);
.
.
}
else {
print q(Fail\tauth_password\n);
.
.
}
.
.
}
else {
print q(Fail\tconnect\n);
.
.
}
je pense que depuis le temps tu a du trouver... mais:
tu pourrai mettre le "$ssh2->connect($HOST)" dans une condition:
if ( $ssh2->connect($HOST) ) {
.
.
.
}
else {
.
.
.
}
et même aller plus loin ;) :
if ( $ssh2->connect($HOST) ) {
print q(Ok\tconnect\n);
if ( $ssh2->auth_password( $LOGIN , $PWD ) ) {
print q(Ok\tauth_passwordt\n);
.
.
}
else {
print q(Fail\tauth_password\n);
.
.
}
.
.
}
else {
print q(Fail\tconnect\n);
.
.
}