Página 1 de 1

Ayuda con módulos de Cisco

NotaPublicado: 2011-12-13 22:22 @974
por kriss87
Hola y gracias por el foro me ha servido de mucho. Soy nuevo en Perl y tengo los conceptos básicos.

Ahora me han asignado una tarea en la cual debo ejecutar unos módulos de Cisco. Ya he logrado conectarme con el telnet pero lo que no he sabido aplicar es el módulo de Cisco::Abbrev.

Por favor, si pudieran ayudarme.

Lo que tengo hecho es:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. use Net::Telnet::Cisco;
  3. use Cisco::Abbrev;
  4. my $long  = cisco_long_int('Gi0/1'); ##$long='GigabitEthernet0/1';
  5. my $short = cisco_abbrev_int('GigabitEthernet0/1');
  6. ## $short='Gi0/1';
  7. my $session = Net::Telnet::Cisco->new(Host => '10.1.1.1');
  8. $session->login('cisco','cisco');
  9. # Execute a command
  10. my @output = $session->cmd('show interface Gi0/1');
  11.  
  12. print @output;
  13.  
  14. # Enable mode
  15.  
  16. if ($session->enable("cisco") )
  17. {
  18. @output = $session->cmd('show interface Gi0/1');
  19. print "My privileges: @output\n";
  20. }
  21. else
  22. {
  23. warn "Can't enable: " . $session->errmsg;
  24. }
  25. $session->close;
Coloreado en 0.005 segundos, usando GeSHi 1.0.8.4


Lo que quiero saber es cómo lograr que si yo en la variable $short le coloco, por ejemplo, h, que pueda realizar, por ejemplo, un show interface h y me muestre la interfaz gigabitethernet.

De antemano, muchas gracias.

Re: Ayuda con módulos de Cisco

NotaPublicado: 2011-12-14 07:13 @342
por explorer
Bienvenido a los foros de Perl en español, kriss87.

El módulo Cisco::Abbrev hace traducción de unas abreviaturas a nombres completos, y al revés, de una serie de comandos:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. our %LONG = (
  2.     'Fa' => 'FastEthernet',
  3.     'Gi' => 'GigabitEthernet',
  4.     'Te' => 'TenGigabitEthernet',
  5.     'Et' => 'Ethernet',
  6.     'Eth' => 'Ethernet',
  7.     'Vl' => 'Vlan',
  8.     'FD' => 'Fddi',
  9.     'PortCh' => 'Port-channel',
  10.     'Po' => 'Port-channel',
  11.  
  12.     'Tu' => 'Tunnel',
  13.     'Lo' => 'Loopback',
  14.     'Vi' => 'Virtual-Access',
  15.     'Vt' => 'Virtual-Template',
  16.     'EO'  => 'EOBC',
  17.  
  18.     'Se' => 'Serial',
  19.     'PO' => 'POS',
  20.     'PosCh' => 'Pos-channel',
  21.     'Mu' => 'Multilink',
  22.     'AT' => 'ATM',
  23.  
  24.     'Async' => 'Async',
  25.     'Group-Async' => 'Group-Async',
  26.     'MFR' => 'MFR',
  27. );
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
pero no veo por ninguna parte que se pueda asignar cierta abreviatura ('h') al comando que queramos.

Re: Ayuda con módulos de Cisco

NotaPublicado: 2011-12-14 07:33 @356
por kriss87
Primero que todo, gracias por responder tan rápido. Lo que coloqué de la 'h' era solo un ejemplo. Tal vez no expliqué bien mi duda. Lo que me gustaría saber es cómo lograr relacionar el módulo, o las variables a la configuración del telnet, como por ejemplo realizar un show interface Gi0/1 pero desde el módulo Cisco::Abbrev

De antemano, gracias.

Re: Ayuda con módulos de Cisco

NotaPublicado: 2011-12-14 09:01 @418
por explorer
Pero es que creo que ese módulo no hace llamadas... solo traduce nombres...

Así, después de hacer un

my $short = cisco_abbrev_int('GigabitEthernet0/1');

En $short tenemos la versión abreviada de 'GigabitEthernet0/1'. Y luego solo es necesario hacer

my @output = $session->cmd("show interface $short");

Es decir: metemos el nombre abreviado como parte del comando a ejecutar.

Re: Ayuda con módulos de Cisco

NotaPublicado: 2011-12-14 09:55 @455
por kriss87
Gracias por la ayuda, me funcionó de maravilla. Nuevamente, gracias.