last day (37 days later) » 

3:46 PM
@abulafia hola bro estas por aca ?
 
4:11 PM
package CheckVP;

use Net::Telnet ();
use strict;

(my $path = $0) =~ s/\/?[^\/]*\z//; # directorio donde reside el script

sub new
{
	my ($class, $args) = @_;
	my $host = $args->{host};
	my $opcuser = $args->{user};
	my $opcpass = $args->{pass};
	my $hdtuser= 'csvsys';
	my $hdtpass= 'csv_sys';
	my $timeout = 30;

	my $t = new Net::Telnet (
		  Timeout => $timeout
		, Binmode => 0
		, Errmode => 'die' #\&terror
		, Prompt  => '/>$/' );

	my $fninput = "$path/log/input_$opcuser.log";
	my $fhinput = $t->input_log($fninput);
Bro lo que te quería consultar si es mas factible pasar esto a python
Es que no he podido hacer lo de la respuesta que te comente hace días atras
 
Con python ya tienes hecha otra cosa usando telnetlib, creo recordar. Puedes usarla como guía para ir traduciendo ésta
 
Si estuve tratando de hacerlo pero me da problemas con el prompt te recuerdas que también tuvimos problema con eso.
Es que necesito sacar estos datos pero me ha costado mucho sacarlos en perl.
 
Es que perl es una tortura
 
Crees que estoy en python se pueda sacar bro ?
Esta conexión es diferente se tiene que logear 2 veces
 
Cualquier cosa que se pueda hacer en Perl se puede hacer en Python, claro está. El tema es qué puede ser más sencillo, si retocar un poco lo que ya tienes hecho en perl, o tener que volver a hacerlo todo desde cero en python
 
4:18 PM
Y se tiene que deslogear el usuario tirandole un comando logout porque sino queda en sesión y es un problema
Ya las conexiones están hechas en perl bro
Esto no lo comencé yo, porque lo fuera hecho en python
Este es la parte del código en perl que tengo que decifrar
La variable $line contiene el resultado de la siguiente manera:
for my $line (split "\r", $pmatch)
{
    $line =~ s/\s*\n$//;
    if ($line =~ /More/)
    {
        $t->print(''); # enter
        next PAGE;

    }elsif ($line =~ /^\s+[\d-]/) {
        print $line;
    }
}
 
` $line =~ s/\s*\n$//;` Esto elimina los espacios al final de la línea
 
($line =~ /More/) esto busca si dentro de la línea aparece la palabra "More" (en cuyo caso envía un retorno de carro al servidor)
 
Si porque en la maquina esta el "More"
 
($line =~ /^\s+[\d-]/) Esto mira si el primer carácter de la línea (sin tener en cuenta espacios iniciales) es un dígito o un guión
@JuanPerez Y esto no tengo ni ide a de qué es XD
 
4:24 PM
Jajaja
Es la respuesta de la maquina el cual son los datos que necesito extraer.
Los resultados son los mismos de la imagen que te adjunte.
Slot  Type     PEC      Primary  Secondary
----  ----  ----------  -------  ---------
  1   DMC               OOS Mtce Unequipped
  2   DMC   NTBN19CA    IS
  3   DMC               NULL
  4   DMC   NTBN19EA    IS
  5   DMC   NTBN19CA    IS
  6   DMC   NTBN19CA    IS
  7   DMC   NTBN19CA    IS
  8   DMC   NTBN19CA    IS
  9   DMC   NTBN19CA    IS
 10   DMC   NTBN19CA    IS
 11   DMC   NTBN19CA    IS
 12   DMC   NTBN19EA    IS
 13   DMC   NTBN19CA    IS
 14   DMC   NTBN19CA    IS
 15   MSC   NTBN20BA    IS
 
Pero salen todos pegados...
 
Estos.
 
Ah, debe de ser por el print $line, que seguramente no añade retorno de carro como en python
 
Si, puede ser
 
Prueba print $line . "\n";
 
4:29 PM
Tenias razón ahora si esta tirando e retorno de carro bien
 
5:33 PM
@abulafia Se puede hacer algo bro ?
 

  last day (37 days later) »