Re: Sacar registros a partir de una fecha.
--- Pablo Braulio <brulics@gmail.com> escribió:
> El Lunes, 14 de Noviembre de 2005 01:37, Ricardo
> Araoz escribió:
> > Usas por ejemplo $((200 - 100)),
> > Un ejemplo, para listar las ultimas 20 líneas de
> un log puedo hacer :
> > # tail -20 /var/log/messages
> > o tambien (lo he probado) ;
> > # tail -$((125 - 105)) /var/log/messages
> >
> > Aplicá lo mismo a tu problema.
> >
> > Ricardo
> >
> > P.S. ; si funciona te agradecería mandes un mail
> diciendo cuál era tu
> > problema exactamente y cómo fue la solución
> exacta. Ya que me podría servir
> > y quiero archivarlo.... Gracias
>
> Si que funciona, pero me queda una cuestión a
> resolver todavía. Cuando lo
> tenga del todo funcionando, prometo pegarlo para que
> lo puedas usar.(faltaría
> más). :-)
>
> Hasta ahora lo tengo hecho para que se ejecute a
> cada hora (eso lo pongo en el
> cron). En una primera ejecución sacará todas las
> líneas del syslog. Contará
> las líneas totales del archivo y guardará este valor
> en un archivo.
>
> En las sucesivas ejecuciones, hará la misma
> operación, pero le restará al
> valor de líneas totales del syslog, el número de
> líneas que tenía el archivo
> en la ejecución anterior. De ese modo y con ese
> valor hará el tail. Y así
> sucesivamente.
>
> Con esto lo tenemos casi solucionado. Pero, a las
> 6:33 horas, los logs del
> syslog, son archivados y empiezan a generarse de
> nuevo.
>
> Para corregir esto, comparo la cantidad de líneas de
> la ejecución anterior,
> con la cantidad de líneas actual. Si es menor, se
> ejecuta de modo normal
> (restando la cantidad anterior a la nueva), si es
> superior, cogerá el valor 0
> (pues en ese caso quiero decir que se han archivado
> los logs).
>
> La comparación la hago así, pero todavía no me
> funciona bien.
>
> # Comprobamos la existencia de archivo de líneas y
> comparamos los archivos.
> lineas1=`cat $lineas`;
> lineas2=`cat $lineas_temp`;
>
> if [ ! -e $lineas ];
> then
> lineas_total=0;
> elif [ $lineas1 =< $lineas2 ];
> then
> lineas_total=`cat $lineas`;
> else
> lineas_total=0;
> fi
>
Tambien puedes usar algo ya creado, aunque no se que
tal va : http://iptablelog.sourceforge.net/
otra solución a tu problema si quieres hacerlo tu, es
olvidarse de sacar los registros por hora y usar un
tail -f /var/log/syslog. Con esto te salen
automaticamente las líneas que se van añadiendo al
syslog.
______________________________________________
Renovamos el Correo Yahoo!
Nuevos servicios, más seguridad
http://correo.yahoo.es
Reply to: