Tengo problemas para capturar la salida que se genera después de cada comando, a continuación relaciono parte del script que estoy usando:
Using perl Syntax Highlighting
- @conn1 = conectar_telnet_cisco( $IPDEVICE, $userbackups, $passbackups );
- if ( ( $conn1[0] ) ) {
- $mensajeerror .= "Equipo=$DEVICE, IP=$IPDEVICE, INTERFACE=$INTERFACE, ERROR=$conn1[0]\n<br>";
- $conteoerrores++;
- }
- else {
- @out = $conn1[1]->cmd("configure terminal\n");
- @out = $conn1[1]->cmd("interface $INTERFACE\n");
- @out = $conn1[1]->cmd("shutdown\n");
- @out = $conn1[1]->cmd("exit\n");
- @out = $conn1[1]->cmd("exit\n");
- sleep(10);
- @out = $conn1[1]->cmd("write memory\n");
- sleep(10);
- $comando .= "configure terminal<br>";
- $comando .= "interface $INTERFACE<br>";
- $comando .= "shutdown<br>";
- $comando .= "exit<br>";
- $comando .= "exit<br>";
- $comando .= "write memory<br>";
- foreach $salida (@out) {
- print "Salida--------> $salida\n";
- if ( $salida =~ /.+?error.+?/is ) {
- $comando = $salida . "<br>";
- }
- }
- $query_deleted
- = "insert into noglpi_suspended_interface VALUES ($IDHOST, '$DEVICE', '$IPDEVICE', '$INTERFACE', '$DESCR', '$CONF', '$LOCATION', now(), 'SUSPENDED', $SERVICEID, '$FABRICANTE')";
- $sql = $mysql_glpi02->prepare($query_deleted);
- $sql->execute();
- $sql->finish();
- $query_deleted
- = "insert into noglpi_suspended_interface_tool VALUES ($IDHOST, '$DEVICE', '$IPDEVICE', '$INTERFACE', '$DESCR', '$CONF', '$LOCATION', now(), 'SUSPENDED', $SERVICEID, '$FABRICANTE')";
- $sql = $mysql_glpi02->prepare($query_deleted);
- $sql->execute();
- $sql->finish();
- ##print "<tr> <td>$CUSTOMER</td> <td>$SERVICEID</td> <td>$SUSPENSIONDATE</td> <td>$DEVICE</td> <td>$IPDEVICE</td> <td>$INTERFACE</td> <td>$DESCR</td> <td>$comando</td> </tr>\n";
- $mensaje
- .= "<tr> <td>$CUSTOMER</td> <td>$SERVICEID</td> <td>$SUSPENSIONDATE</td> <td>$DEVICE</td> <td>$IPDEVICE</td> <td>$INTERFACE</td> <td>$DESCR</td> <td>$comando</td> </tr>\n";
- }
- cerrar_telnet_cisco( $conn1[1] );
- $conteointerfaces++;
- }
Coloreado en 0.006 segundos, usando GeSHi 1.0.8.4
Básicamente quiero capturar si al ejecutar uno de los comandos se genera algún tipo de error.
La forma de usarlo es realmente a través de una función que tiene el siguiente código:
Using perl Syntax Highlighting
- ## -----------------------------------------------------------------------
- ## Conexión con los equipos cisco
- ## -----------------------------------------------------------------------
- sub conectar_telnet_cisco {
- ## ---------------------------------------------------------------
- ## Inicialización de variables
- ## ---------------------------------------------------------------
- my $ip = $_[0];
- my $err = "";
- my $telnet = new Net::Telnet::Cisco (Errmode => "return");
- my ($localpass);
- ## ---------------------------------------------------------------
- ## Se establece la conexión vía telnet
- ## ---------------------------------------------------------------
- $telnet->open (Host => $ip, Port => 23, Timeout => 12);
- $err = $telnet->errmsg();
- if ($err) {
- return $err, $telnet;
- }
- $telnet->login(Name => "$userbackups",Password => "$passbackups",Timeout => 30);
- $err = $telnet->errmsg();
- return $err, $telnet;
- }
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
Agradezco mucho quien me pueda ayudar, no he podido obtener los errores.