Foros del Web » Programación para mayores de 30 ;) » Programación General »

Problema con PERL Net::Rsh y control flujo con TIMEOUT

Estas en el tema de Problema con PERL Net::Rsh y control flujo con TIMEOUT en el foro de Programación General en Foros del Web. Hola que tal, me bienaventuro en este foro con un grave problema de control de flujo, resulta que no tengo control en Perl sobre el ...
  #1 (permalink)  
Antiguo 12/12/2008, 08:31
 
Fecha de Ingreso: diciembre-2008
Mensajes: 2
Antigüedad: 15 años, 4 meses
Puntos: 0
Exclamación Problema con PERL Net::Rsh y control flujo con TIMEOUT

Hola que tal, me bienaventuro en este foro con un grave problema de control de flujo, resulta que no tengo control en Perl sobre el modulo de RSH, asi que cuando hago un rsh a una maquina remota, y esta a su vez tiene el servicio mal, no me da la posibilidad de hacer un timeout y proseguir por ejemplo con la siguiente maquina si tuviese un listado de maquinas para hacer diversas conexiones...

Este es el codigo, a ver si alguien pudiese echarle un vistazo, gracias:

Script original (cortado, solo dejo lo interesante, el control del flujo)

[...]
#!/usr/bin/perl

use Net::Ping;
use Net::Ifconfig::Wrapper;
use Net::Rsh;

... ...

PropagateStatus(@NodeList,$ProxyNo);
sub PropagateStatus {

local *listnodes=@_[0];

# Set remote status files to itself as the MasterProgram
local $command = "echo " .$_[1] ." > " .$status_file;
local $rsh_connection=Net::Rsh->new();
foreach (@listnodes) {
chomp($_);
print "RSH access to " ."-$username\@$_- \n";
print "Executing: $command at remote host\n";
@tmp=$rsh_connection->rsh($_,$username,$username,$command);
}
}


Hace una conexion rsh al primer nodo disponible pero si falla no es capaz de seguir con el siguiente nodo del array nodelist.
Aqui he encontrado una posible solucion, podriais echarle un ojo para revisar si esta correcto? o si disponeis de alguna otra posible solucion?

....

local $rsh_connection=Net::Rsh->new();
foreach (@listnodes) {
$SIG{ALRM} = \&temporizador;
$time=10;
eval {
alarm($time);


chomp($_);
print "RSH access to " ."-$username\@$_- \n";
print "Executing: $command at remote host\n";
@tmp=$rsh_connection->rsh($_,$username,$username,$command);
}
}

alarm(0);
};
if ($@ =~ /End of timer/){
print "Returns timer code\n";
}else{
print "Returns no code: $res\n";
}

sub temporizador {
# how its added
die "Timeup of timer";
}



Gracias por todo!
  #2 (permalink)  
Antiguo 12/12/2008, 08:47
 
Fecha de Ingreso: diciembre-2008
Mensajes: 2
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Problema con PERL Net::Rsh y control flujo con TIMEOUT

. .
  #3 (permalink)  
Antiguo 13/12/2008, 09:31
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 2 meses
Puntos: 90
Respuesta: Problema con PERL Net::Rsh y control flujo con TIMEOUT

Hola, según http://search.cpan.org/~aslett/Net-Rsh-0.05/Rsh.pm

la versión del módulo es la 0.05. está muy verde todavía...y la documentación es bien poble...

nunca lo usé así que no te puedo ayudar mucho, ojalá alguien lo haya usado y te responda...

Saludos
__________________
Esteban Quintana
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:56.