Página 1 de 1

Select de BD a fichero de texto+control de tiempo+conex RSH

NotaPublicado: 2009-02-12 22:20 @972
por mjimenez
Hola estoy intentando controlar a través de una select que me llega a una tabla la forma de leer el último fetch de mi select y colocarla en un fichero de texto.

Esto es lo que estoy haciendo:

En la query:
Sintáxis: [ Descargar ] [ Ocultar ]
Using sql Syntax Highlighting
SELECT id,text, node, ttime FROM eventos WHERE lower(text) LIKE '%mialarma%' ORDER BY ttime DESC LIMIT 1;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Me devuelve: ID, mialarma texto, ttime

1. Debería añadir el fetch a un fichero de texto...
@file


2.Debo comprobar que el último evento sea distinto del anterior almacenado en el fichero de log alarma de ttime 1122 nueva en el tiempo de la siguiente generada 1123...
La alarma llegará cada 5 minutos.
Si no llegara ninguna alarma hago una llamada remota RSH a un servidor para ejecutar un comando. Esperaría otros 5 minutos para ver si me siguen llegando alarmas (para no crear un bucle infinito).

¿Cómo puedo hacer esto? Lo que tengo no me está dando resultado (he consultado muchos libros y no soy capaz de realizarlo)

Agradecería cualquier tipo de colaboración.
¡Gracias!

NotaPublicado: 2009-02-12 22:22 @973
por mjimenez
Conexion RSH...

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
use Net::Rsh;

  $a=Net::Rsh->new();

  $host="10.30.100.20";
  $local_user="root";
  $remote_user="root";
  $cmd="ls -ltr/home/$user";

  @c=$a->rsh($host,$local_user,$remote_user,$cmd);

  print @c;
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Código: Seleccionar todo
Rsh protocol requires that the program be run as root or that the program be setuid to root

NotaPublicado: 2009-02-12 22:23 @974
por mjimenez
Grabar contenido en un archivo:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
open(FH,"filename");
@stuff = <FH>;
close(FH);
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


¿¿Está bien??

NotaPublicado: 2009-02-12 22:25 @975
por mjimenez
Aunque también encontré este pequeño ejemplo de código para grabar un fichero en una máquina remota con remotecopy rcp:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
use Net::Rsh;

$rsh_connection->rsh($_,$username,$username,$command);
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Código: Seleccionar todo
Quick program to rcp files to other hosts.
Makes backup of old file first then copies across.


Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/bin/perl

$testigo="testigo.txt";
$destino="destino.txt";
$dir="/opt/home/user";
$rcp="/bin/rcp";
$rsh="/bin/rsh";

host1="10.30.100.20";
host2="10.30.100.30";
host3="10.30.100.40";

@hosts = (host1,host2,host3);
foreach $host(@hosts)
{
 `$rsh $host cp $dir/$testigo $dir/$destino`;
 `$rcp $testigo $host:$dir`;
 print "$rcp $testigo $host:$dir\n";
}
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Pero no me está funcionando tampoco... :(

NotaPublicado: 2009-02-13 04:49 @242
por explorer
mjimenez escribiste:Grabar contenido en un archivo:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
open(FH,"filename");
@stuff = <FH>;
close(FH);
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


¿¿Está bien??
Ahí estás leyendo el contenido del fichero, no grabándolo.

NotaPublicado: 2009-02-13 05:39 @277
por mjimenez
Hola explorer, bien, para grabarlo usaría:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
open(FH,"filename");
@stuff = <FH>;
print FH $new_stuff;
close(FH);
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

NotaPublicado: 2009-02-13 05:40 @277
por mjimenez
Edito:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
open(FH,">filename");
@stuff = <FH>;
print FH $new_stuff;
close(FH);
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

NotaPublicado: 2009-02-13 05:53 @287
por explorer
Recuerda que puedes editar tus propios mensajes, con el botón que hay a la derecha, en cada mensaje.

Si, por lo que sospecho, solo quieres cambiar una línea del fichero de texto, te recomiendo usar Tie::File.

¿Qué diferencia hay entre @stuff y @new_stuff? ¿Son muy grandes las diferencias?