🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.os.linux.programacion
Article #993

Re: de log a bbdd

#993
From: Abelardo Tordo
Date: Tue, 30 May 2006 00:13
39 lines
2388 bytes
En es.comp.os.linux.programacion, Angel <lomugo@supercable.es> escribi�:

> Buenas, me gustar�a programar un proceso que pasara de ficheros de texto 
> (log del sistema concretamente) a una base de datos Mysql. He pensando en 
> hacer un script de Perl que este continuamente (como una tarea programa de 
> crontab, o con un demonio de C que llame al script) leyendo los ficheros, 
> sacando la informaci�n, pas�ndola a sql y generando y ejecutando dichas 
> sentencias sql.
>
> Alguna sugerencia mejor para realizar esto?

Si los logs son a trav�s de syslog, puedes volcar la parte que te
interese a un fifo, p. ej, en syslog.conf:

auth,authpriv.*;*.=debug                |/ruta/fifo

Luego lo lees:

open (FIFO, "< /ruta/fifo") ||
   die ("No se pudo abrir el fifo\n");
while (<FIFO>) {
   if (m/... # Las expresiones regulares que quieras buscar
}

Si no quieres/puedes modificar el syslog.conf, o se trata de un programa
que no lo usa, puedes usar el m�dulo File::Tail:

use File::Tail;
my $log="/ruta/log";
my $f=File::Tail->new(name=>$log);
my $l;
while (defined($l=$f->read)) {
   if ($l =~ m/... # Expresiones regulares a buscar
}

Ambos m�todos son pr�cticamente iguales, ya que el meollo est�,
obviamente, en programar lo que haya dentro del while. En los dos casos
el proceso deber�a funcionar indefinidamente, pero para mayor seguridad
puedes monitorizarlo con daemontools, por ejemplo.
Technical Details
Message-ID: <14UuhYS%atordo@galeon.com>
Path: arc1-ca.pugleaf.net!g2news2.google.com!news3.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!newsfeed00.sul.t-online.de!t-online.de!newspeer1.de.telia.net!newspeer4.de.telia.net!de.telia.net!eleonora.aioe.org!emma.aioe.org!aioe.org!not-for-mail
References: <hgKeg.2130675$kp.11596468@telenews.teleline.es>

Show Full Headers
Complete Article Headers
X-Google-Thread: f86c8,eace1b2e0d37c1c4
X-Google-Attributes: gidf86c8,public
X-Google-Language: SPANISH,ASCII
Path: arc1-ca.pugleaf.net!g2news2.google.com!news3.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!newsfeed00.sul.t-online.de!t-online.de!newspeer1.de.telia.net!newspeer4.de.telia.net!de.telia.net!eleonora.aioe.org!emma.aioe.org!aioe.org!not-for-mail
From: Abelardo Tordo <atordo@galeon.com>
Newsgroups: es.comp.os.linux.programacion
Subject: Re: de log a bbdd
Date: 30 May 2006 00:13:42 GMT
Organization: No
Lines: 39
Message-ID: <14UuhYS%atordo@galeon.com>
References: <hgKeg.2130675$kp.11596468@telenews.teleline.es>
NNTP-Posting-Host: 6gjYeypIvv606U8uBBhJ1w.user.aioe.org
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-15
Content-Transfer-Encoding: 8bit
X-Complaints-To: abuse@aioe.org
Cancel-Lock: sha1:878H8f7iokmlGIEXBifeMZmmXpE=
User-Agent: slrn/0.9.8.1 (UNIX)
Mail-Copies-To: nobody