Perl - lanzar un script de una maquina desde otra

 
Vista:

lanzar un script de una maquina desde otra

Publicado por javierg (1 intervención) el 15/01/2007 16:09:30
Muy buenas,

Te comento una dudilla que tengo. Estoy buscando un modulo que haga lo siguiente.

POngamos que tengo 2 maquinas, maquina1 y maquina2.
Maquina 2 tiene un script que se llama script2.

Mi idea es ejecutar scrip2 y que los datos actuen y se almacenen en maquina2, eso sí, llamando a ese script2 desde maquina1

Me explico con un ejemplo

script2 --> este procedimiento escribe hola en /etc/nombres.txt

desde maquina 1, quiero ejecutar script2 que esta en maquina2. Cuando lea /etc/nombres.txt en maquina 2 lea hola

Ayuda please.
He visto varios modulos de Soap, pero solo eran validas para aplicaciones web, y un modulo Net::RMI pero no consigo sacar como funciona
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:lanzar un script de una maquina desde otra

Publicado por RyDer (2 intervenciones) el 01/02/2007 16:30:34
Puedes intentar haciendo Telnet a la maquina desde un codigo perl que crees:

#! /usr/bin/perl -w

use Expect;

$object = new Expect();
my $timeout = 5;
my $prompt = "(%|\\\$|#) ";

my $spawn_global = $object->spawn("telnet $host") or die "Cannot spawn telnet: $!\n";
$spawn_global->expect(15,
'-ex', "not known", sub { print "Host desconocido\n"; exit; },
'-re', "(U|u)nable", sub { print "\n****Conexion desconocida****\n"; exit; },
'-re', "(L|l)ogin:");
$spawn->send($user."\n");
$spawn->expect(15, "Password:");
$spawn->send($pass."\n");
$spawn->expect($timeout,
'-re', "(Invalid|incorrect)", sub { exit; },
'-re', $prompt, sub { print "Ya se conecto con mi usuario...\n"; });
$spawn->expect(1);
$spawn->send("./script2\n");
$spawn->expect(2);
$spawn->hard_close();

He de suponer que te preguntas que es Expect. Bueno, es una buena herramienta creada para Linux (suponiendo que tu problema sea en ese SO, aunque se puede para Windows) el cual automatiza muchas tareas que creias que no se podian (como esta, por ejemplo). Para poder usarlo, necesitas bajar el modulo de Expect para Perl (http://search.cpan.org/CPAN/authors/id/R/RG/RGIERSIG/Expect-1.20.tar.gz). Descomprimelo e instalalo. Luego de eso vuelve a Perl, copia y pega este codigo (obviamente, con los parametros de tu preferencia, $host, $user, $pass) y veras que funciona.
Cualquier cosa pregunta por aqui.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:lanzar un script de una maquina desde otra

Publicado por Walter Lamagna (15 intervenciones) el 14/02/2007 15:38:36
Hay varias formas que se me ocurren, son soluciones linux:

1) un web server apache y ejecutas el script como un script cgi.
2) configuras el script como unservicio en xinetd (/etc/xinetd.d/) en linux
3) Creas un servidorcito tcp en perl que oiga en un puerto y cuando te conectas al puerto le das una contrase~na (para agregar cierta seguridad) y si la clave es correcta, ejecutas el script.
4) Configuras sendmail para que cuando recibe un mensaje la maquina a una direccion especifica, que ejecute el script.

y debe haber otras... la de hacer un WebService me parece la mas complicada pero la mas interesante ;-)

Saludos
Walter
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:lanzar un script de una maquina desde otra

Publicado por Arturo A (1 intervención) el 05/07/2007 17:47:04
yo he tenido una necesidad parecida y lo he resuelto mediante el esquema de raciones de confianza entre servidores unix con ssh, esto me permirte ejecutar scripts de una maquina sin necesidad de dar login ni password. los pasos a seguir serian
1.- instalar ssh en ambos equipos
2.- configurar las llaves de los usuarios en cada maquina esto es con el comenado ssh-keygen
3.- intercambiar llaves entre los usuarios d los equipos.
4.-conectarte mediante ssh y ejecutar el script
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar