Article View: es.comp.os.linux.programacion
Article #993Re: de log a bbdd
From: Abelardo Tordo
Date: Tue, 30 May 2006 00:13
Date: Tue, 30 May 2006 00:13
39 lines
2388 bytes
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-mailReferences:
<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