La connection sur des p�riph�riques via SSH est un probl�me que j'ai constat� assez r�current, et assez probl�matique vis � vis de certains p�riph�riques cisco. Venant de trouver une solution � mon probl�me, je la poste en �sperant qu'elle pourra en aider certains :
Donc pour tout ceux qui ont des probl�mes avec Net::SSH::Perl ou Perl::SSH2, voir m�me Net::Appliance::session, voici une piste :
Je pr�cise que cela est tir� de la doc CPAN, et j'ai simple�ent r�duit le script au minimum pour mes besoins.
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
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 #! /usr/bin/perl use Net::SSH::Expect; my $ssh = Net::SSH::Expect->new ( host => "192.168.90.100", password=> 'cisco', user => 'admin', raw_pty => 1 ); my $enable_passwd = "cisco"; my $login_output = $ssh->login(); $ssh->run_ssh() or die "SSH process couldn't start: $!"; $ssh->send("enable"); $ssh->waitfor('Password:\s*\z', 1) or die "prompt 'password' not found after 1 second"; $ssh->send($enable_passwd); my $ls = $ssh->exec("show hosts"); print($ls); # When running a command that causes a huge output, # lets get the output line by line: $ssh->send("show interfaces"); # using send() instead of exec() my $line; # returns the next line, removing it from the input stream: while ( defined ($line = $ssh->read_line()) ) { print $line . "\n"; } # closes the ssh connection $ssh->close();
Cependant, j'ai un dernier souci : avec ce script, l'execution de plusieurs commandes ne pose aucun probl�me (plus de soucis de channel), mais lors d'affichage de grande sortie (genre un r�sultat de commande de plusieurs 10 aines de lignes), je n'arrive pas passer outre le "--More--" de cisco. Donc au final, je n'arrive recuperer dans une variable que la pre�i�re page de l'affichage.
Si quelqu'un a une piste ou une solution � ce probl�me...
Partager