Bonjour,
J'ai réalisé un script de connexion à une base de donnée via ssh, mon script est en perl. j'ai réussi à me connecter mais après je dois lancer la commande "bwcli" qui est une application java, cette commande ne rend pas la mais et bloque tout. j'ai du alors passer par un handler pour contourner mon problème et effectiment j'ai réussi à récupere le retour de bwcli (AS_CLI> ) le problème c'est que je dois me logguer de nouveau avec un identifiant et un mot de passe, je n'arrive pas toujours après plusieurs tentation. j'éspère pouvoir trouver de l'aide sur ce formu SVP
Merci d'avance. et voici mon script :
#!/bin/perl
use Net::SSH::Perl;
use Data::Dumper;
my $login2 = "l admin\n";
my $passadmin = 'motdepasse';
my $etat = "selogger";
my $adresseServeur="...";
$ssh = new Net::SSH::Perl ("$adresseServeur");
$ssh->login("bwadmin", "bwadmin");
$ssh->register_handler("stdout", sub {
my($channel, $buffer) = @_;
my $inbuffer = $buffer->bytes;
chomp $inbuffer;
print "I received this: $inbuffer\n";
if ($inbuffer eq "Reading initial CLI command file...")
{
if ($inbuffer =~ m/AS_CLI>/)
{
print "j'entre en etat 1\n";
$channel->send_data($login2);
print "I received this: ", $buffer->bytes;
$etat ='demande_motde_passe';
print"jai fini letat 1\n";
}
}
if ( $etat eq 'demande_motde_passe' )
{
$channel->send_data($passadmin);
print "I received this: ", $buffer->bytes;
$etat = "exetree";
print"jai fini letat 2\n";
}
if ($etat eq "exetree")
{
$channel->send_data('tree -r -f > /export/home/bwadmin/ficArborescence.txt');
print "I received this: ", $buffer->bytes;
$etat ="selogger" ;
print"jai fini letat 3, aurevoir\n";
exit(0);
}
$channel->send_data("\n");
});
my($stdout, $stderr, $exit) = $ssh->cmd("bwcli");
print "STDOUT:\n\n$stdout\n";
print "STDERR:\n\n$stderr\n";
Configuration: Windows XP
Internet Explorer 6.0