Sacar registros a partir de una fecha.

2005-11-12 Thread Pablo Braulio
Hola a todos.

Estoy tratando se sacar los registros de syslog a partir de una fecha. 
("cat /var/log/syslog ")

¿Alguien sabe si hay algún comando que lo haga?. He revisado el man de grep, y 
no encuentro nada que lo pueda hacer.

Otra cosa que se me había ocurrido hacer es mover el archivo "syslog", pero al 
parecer el sistema no lo vuelve a crear nuevamente y sigue introduciendo 
datos en dicho fichero.
-- 
Saludos.
Pablo.

Fingerprint 5607 40CF 45EF D490 B794  5056 D7B2 C3DC ABF1 CE49
Jabber: bruli(at)myjabber(dot)net


pgpp5B31hIiIK.pgp
Description: PGP signature


Re: Sacar registros a partir de una fecha.

2005-11-12 Thread [EMAIL PROTECTED]


 Mensaje original 
Asunto: Re: Sacar registros a partir de una fecha.
De: "[EMAIL PROTECTED]" <[EMAIL PROTECTED]>
Fecha:  Sab, 12 de Noviembre de 2005, 11:08 pm
Para:   "Pablo Braulio" <[EMAIL PROTECTED]>
--

con un solo comando no creo que puedas hacerlo, vas a tener que hacerte un
script, quizás combinando grep con awk y printf (lo usual para estas
cosas)..no sé, pero lo que me crea dudas es que quieres decir con que al
mover syslog el sistema sigue escribiendo en ese fichero, y que no lo
vuelve a crear? creo que no he entendido muy bien lo que has querido
decir.

responder una pregunta con otra pregunta es una putada , lo sé. :)

On Sab, 12 de Noviembre de 2005, 10:28 pm, Pablo Braulio dijo:
> Hola a todos.
>
> Estoy tratando se sacar los registros de syslog a partir de una fecha.
("cat /var/log/syslog ")
>
> ¿Alguien sabe si hay algún comando que lo haga?. He revisado el man de
grep, y
> no encuentro nada que lo pueda hacer.
>
> Otra cosa que se me había ocurrido hacer es mover el archivo "syslog",
pero al
> parecer el sistema no lo vuelve a crear nuevamente y sigue introduciendo
datos en dicho fichero.
> --
> Saludos.
> Pablo.
>
> Fingerprint 5607 40CF 45EF D490 B794  5056 D7B2 C3DC ABF1 CE49
> Jabber: bruli(at)myjabber(dot)net
>


-- 
Un Saludo.
Best Regards.

Angel C.Camino



-- 
Un Saludo.
Best Regards.

Angel C.Camino


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: Sacar registros a partir de una fecha.

2005-11-12 Thread Pablo Braulio
El Sábado, 12 de Noviembre de 2005 23:08, [EMAIL PROTECTED] escribió:
> con un solo comando no creo que puedas hacerlo, vas a tener que hacerte un
> script, quizás combinando grep con awk y printf (lo usual para estas
> cosas)..no sé, pero lo que me crea dudas es que quieres decir con que al
> mover syslog el sistema sigue escribiendo en ese fichero, y que no lo
> vuelve a crear? creo que no he entendido muy bien lo que has querido
> decir.
>
> responder una pregunta con otra pregunta es una putada , lo sé. :)
>

Lo que quiero es hacer un script para esto. Ya tengo uno iniciado que me saca 
los valores que quiero del  syslog.

El problema es que me saca todos los campos que yo quiero del syslog, sin 
poder filtrar por horas.

Es decir.
Si ejecuto el script (en el cron) cada hora me repite demasiados datos. Si se 
ejecuta a las 16:00 horas (p.e.), me sacará todos los valores desde las 6:33 
horas hasta las 16:00 horas, y luego al volverse a ejecutar a las 17:00 
horas, sacará los mismos valores añadiendo los que se han generado desde las 
16 hasta las 17.

La finalidad de esto es meterlos en una base de datos.

Lo que necesito es algún comando (si existe), que me permita mostrar valores a 
partir de una hora. De ese modo podría decirle (al ejecutarse a las 17:00 
horas), que me mostrara los valores desde las 16:00. Hora de la ejecución 
anterior.


Otra cosa que se me había ocurrido es mover el archivo del syslog 
(mv /var/log/syslog /directorio_destino), y sacar de ese archivo lo que 
necesito. De este modo tendría los datos desde la última ejecución. Pero al 
parecer el sistema no vuelve a generar un archivo donde introducir sus logs y 
aunque lo cree manualmente y le asigne el propietario y los permisos 
adecuados, no se llena de logs.

Curiosamente estos siguen siendo introducidos en el archivo syslog que he 
movido. ¿? No lo entiendo.

Si a alguien se le ocurre un modo de poder hacer esto, o sabe del comando que 
pregunto, agradecería su ayuda.
-- 
Saludos.
Pablo.

Fingerprint 5607 40CF 45EF D490 B794  5056 D7B2 C3DC ABF1 CE49
Jabber: bruli(at)myjabber(dot)net


pgpX1UzQIgTD2.pgp
Description: PGP signature


Re: Sacar registros a partir de una fecha.

2005-11-12 Thread Angel Claudio Alvarez
El sáb, 12-11-2005 a las 22:28 +0100, Pablo Braulio escribió:
> Hola a todos.
> 
> Estoy tratando se sacar los registros de syslog a partir de una fecha. 
> ("cat /var/log/syslog ")
> 
> ¿Alguien sabe si hay algún comando que lo haga?. He revisado el man de grep, 
> y 
> no encuentro nada que lo pueda hacer.
> 
con perl lo haces en cuatro lineas

> Otra cosa que se me había ocurrido hacer es mover el archivo "syslog", pero 
> al 
> parecer el sistema no lo vuelve a crear nuevamente y sigue introduciendo 
> datos en dicho fichero.
Tenes que reiniciar el demonio
-- 
Angel Claudio Alvarez
Usuario Linux Registrado 143466
GPG Public Key en http://pgp.mit.edu
key fingerprint = 3AED D95B 7E2D E954 61C8  F505 1884 473C FC8C 8AC4



signature.asc
Description: This is a digitally signed message part


Re: Sacar registros a partir de una fecha.

2005-11-12 Thread Carlos Zuniga
On 11/12/05, Pablo Braulio <[EMAIL PROTECTED]> wrote:
> El Sábado, 12 de Noviembre de 2005 23:08, [EMAIL PROTECTED] escribió:
> > con un solo comando no creo que puedas hacerlo, vas a tener que hacerte un
> > script, quizás combinando grep con awk y printf (lo usual para estas
> > cosas)..no sé, pero lo que me crea dudas es que quieres decir con que al
> > mover syslog el sistema sigue escribiendo en ese fichero, y que no lo
> > vuelve a crear? creo que no he entendido muy bien lo que has querido
> > decir.
> >
> > responder una pregunta con otra pregunta es una putada , lo sé. :)
> >
>
> Lo que quiero es hacer un script para esto. Ya tengo uno iniciado que me saca
> los valores que quiero del  syslog.
>
> El problema es que me saca todos los campos que yo quiero del syslog, sin
> poder filtrar por horas.
>
> Es decir.
> Si ejecuto el script (en el cron) cada hora me repite demasiados datos. Si se
> ejecuta a las 16:00 horas (p.e.), me sacará todos los valores desde las 6:33
> horas hasta las 16:00 horas, y luego al volverse a ejecutar a las 17:00
> horas, sacará los mismos valores añadiendo los que se han generado desde las
> 16 hasta las 17.
>
> La finalidad de esto es meterlos en una base de datos.
>
> Lo que necesito es algún comando (si existe), que me permita mostrar valores a
> partir de una hora. De ese modo podría decirle (al ejecutarse a las 17:00
> horas), que me mostrara los valores desde las 16:00. Hora de la ejecución
> anterior.
>
>
> Otra cosa que se me había ocurrido es mover el archivo del syslog
> (mv /var/log/syslog /directorio_destino), y sacar de ese archivo lo que
> necesito. De este modo tendría los datos desde la última ejecución. Pero al
> parecer el sistema no vuelve a generar un archivo donde introducir sus logs y
> aunque lo cree manualmente y le asigne el propietario y los permisos
> adecuados, no se llena de logs.

Lo que podrias hacer es pasar /var/log/syslog >> /var/log/syslog_bkp y
borrarlo cosa que solo se guardan ahi los logs desde el momento que
ejecutaste el script.

Saludos

--
Linux Registered User # 386081
A menudo unas pocas horas de "Prueba y error" podrán ahorrarte minutos
de leer manuales.
カルロス


Re: Sacar registros a partir de una fecha.

2005-11-13 Thread Pablo Braulio
El Domingo, 13 de Noviembre de 2005 02:57, Carlos Zuniga escribió:
> Lo que podrias hacer es pasar /var/log/syslog >> /var/log/syslog_bkp y
> borrarlo cosa que solo se guardan ahi los logs desde el momento que
> ejecutaste el script.

¿Te refieres a hacer cat /var/log/syslog>>/var/log/syslog_bkp?
-- 
Saludos.
Pablo.

Fingerprint 5607 40CF 45EF D490 B794  5056 D7B2 C3DC ABF1 CE49
Jabber: bruli(at)myjabber(dot)net


pgpQNMDZW5PaM.pgp
Description: PGP signature


Re: Sacar registros a partir de una fecha.

2005-11-13 Thread Ricardo Araoz
Y si cuentas las líneas con que queda tu syslog y lo guardas en algún lado?
Luego en la siguiente corrida haces un tail 
-LineasGuardadas_menos_LineasActuales y te debería dar las líneas nuevas.
No se cuan dificil pueda ser hacer ese script (nunca lo hice).

Ricardo


El Sábado 12 Noviembre 2005 18:28, Pablo Braulio escribió:
> Hola a todos.
>
> Estoy tratando se sacar los registros de syslog a partir de una fecha.
> ("cat /var/log/syslog ")
>
> ¿Alguien sabe si hay algún comando que lo haga?. He revisado el man de
> grep, y no encuentro nada que lo pueda hacer.
>
> Otra cosa que se me había ocurrido hacer es mover el archivo "syslog", pero
> al parecer el sistema no lo vuelve a crear nuevamente y sigue introduciendo
> datos en dicho fichero.



Re: Sacar registros a partir de una fecha.

2005-11-13 Thread Pablo Braulio
El Domingo, 13 de Noviembre de 2005 23:17, Ricardo Araoz escribió:
> Y si cuentas las líneas con que queda tu syslog y lo guardas en algún lado?
> Luego en la siguiente corrida haces un tail
> -LineasGuardadas_menos_LineasActuales y te debería dar las líneas nuevas.
> No se cuan dificil pueda ser hacer ese script (nunca lo hice).
>

Pues después de pensarlo un rato, veo que sería fácil restar las lineas 
sacadas en la ejecución anterior, a las lineas sacadas en la ejecución 
actual.

¿Pero como puedo restarlas?.

El modo de averiguar las lineas es bastante sencillo hacerlo mediante un 
script:

Sacamos el log:

cat archivo_log>>temp_log

Se recoge el número de lineas que tiene el archivo del log:

wc -l temp_log | cut -d " " -f1>archivo_lineas  
(este archivo se mantiene para la comparación posterior).

Ahora sólo nos queda sacar los valores del número de líneas y restarlos.

Conocía el funcionamiento de bc, como calculadora, pero requiere entrar en su 
entorno. No puedo hacer bc 200-100, para que me muestre la diferencia.

Desconozco si existe algún otro modo de poder restar cantidades en consola 
directamente.
-- 
Saludos.
Pablo.

Fingerprint 5607 40CF 45EF D490 B794  5056 D7B2 C3DC ABF1 CE49
Jabber: bruli(at)myjabber(dot)net


pgpoGQyTwzDIJ.pgp
Description: PGP signature


Re: Sacar registros a partir de una fecha.

2005-11-13 Thread Ricardo Araoz
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

El Domingo 13 Noviembre 2005 20:56, Pablo Braulio escribió:
> El Domingo, 13 de Noviembre de 2005 23:17, Ricardo Araoz escribió:
> > Y si cuentas las líneas con que queda tu syslog y lo guardas en algún
> > lado? Luego en la siguiente corrida haces un tail
> > -LineasGuardadas_menos_LineasActuales y te debería dar las líneas nuevas.
> > No se cuan dificil pueda ser hacer ese script (nunca lo hice).
>
> Pues después de pensarlo un rato, veo que sería fácil restar las lineas
> sacadas en la ejecución anterior, a las lineas sacadas en la ejecución
> actual.
>
> ¿Pero como puedo restarlas?.
>
> El modo de averiguar las lineas es bastante sencillo hacerlo mediante un
> script:
>
> Sacamos el log:
>
> cat archivo_log>>temp_log
>
> Se recoge el número de lineas que tiene el archivo del log:
>
> wc -l temp_log | cut -d " " -f1>archivo_lineas
> (este archivo se mantiene para la comparación posterior).
>
> Ahora sólo nos queda sacar los valores del número de líneas y restarlos.
>
> Conocía el funcionamiento de bc, como calculadora, pero requiere entrar en
> su entorno. No puedo hacer bc 200-100, para que me muestre la diferencia.
>
> Desconozco si existe algún otro modo de poder restar cantidades en consola
> directamente.



Re: Sacar registros a partir de una fecha.

2005-11-13 Thread Ricardo Araoz
El Domingo 13 Noviembre 2005 21: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
>
> El Domingo 13 Noviembre 2005 20:56, Pablo Braulio escribió:
> > El Domingo, 13 de Noviembre de 2005 23:17, Ricardo Araoz escribió:
> > > Y si cuentas las líneas con que queda tu syslog y lo guardas en algún
> > > lado? Luego en la siguiente corrida haces un tail
> > > -LineasGuardadas_menos_LineasActuales y te debería dar las líneas
> > > nuevas. No se cuan dificil pueda ser hacer ese script (nunca lo hice).
> >
> > Pues después de pensarlo un rato, veo que sería fácil restar las lineas
> > sacadas en la ejecución anterior, a las lineas sacadas en la ejecución
> > actual.
> >
> > ¿Pero como puedo restarlas?.
> >
> > El modo de averiguar las lineas es bastante sencillo hacerlo mediante un
> > script:
> >
> > Sacamos el log:
> >
> > cat archivo_log>>temp_log

Me quedó una duda... Por qué razón guardás un temp_log. No sería más directo 
hacer 
wc -l archivo_log | cut -d " " -f1 >archivo_lineas
y ahorrarte el cat ? O me estoy perdiendo de algo?

Ricardo

> >
> > Se recoge el número de lineas que tiene el archivo del log:
> >
> > wc -l temp_log | cut -d " " -f1>archivo_lineas
> > (este archivo se mantiene para la comparación posterior).
> >
> > Ahora sólo nos queda sacar los valores del número de líneas y restarlos.
> >
> > Conocía el funcionamiento de bc, como calculadora, pero requiere entrar
> > en su entorno. No puedo hacer bc 200-100, para que me muestre la
> > diferencia.
> >
> > Desconozco si existe algún otro modo de poder restar cantidades en
> > consola directamente.



Re: Sacar registros a partir de una fecha.

2005-11-13 Thread Ricardo Araoz
Si todo lo anterior no te funciona..
Estuve mirando mi /var/log/syslog (creo que ese era el log que querías ver) y 
noté que cada tanto hay una línea que luego de la fecha y hora pone :
localhost -- MARK --
Se me ocurrió que si te las ingeniás para poner algún tipo de marca en el log 
tal vez luego te puedas listar el archivo a partir de la última de dichas 
marcas (aunque ahora que pienso cómo hacerlo se me hace difícil) pero 
bueno, si te desesperás acá hay otra cosa para probar.

Ricardo



El Domingo 13 Noviembre 2005 20:56, Pablo Braulio escribió:
> El Domingo, 13 de Noviembre de 2005 23:17, Ricardo Araoz escribió:
> > Y si cuentas las líneas con que queda tu syslog y lo guardas en algún
> > lado? Luego en la siguiente corrida haces un tail
> > -LineasGuardadas_menos_LineasActuales y te debería dar las líneas nuevas.
> > No se cuan dificil pueda ser hacer ese script (nunca lo hice).
>
> Pues después de pensarlo un rato, veo que sería fácil restar las lineas
> sacadas en la ejecución anterior, a las lineas sacadas en la ejecución
> actual.
>
> ¿Pero como puedo restarlas?.
>
> El modo de averiguar las lineas es bastante sencillo hacerlo mediante un
> script:
>
> Sacamos el log:
>
> cat archivo_log>>temp_log
>
> Se recoge el número de lineas que tiene el archivo del log:
>
> wc -l temp_log | cut -d " " -f1>archivo_lineas
> (este archivo se mantiene para la comparación posterior).
>
> Ahora sólo nos queda sacar los valores del número de líneas y restarlos.
>
> Conocía el funcionamiento de bc, como calculadora, pero requiere entrar en
> su entorno. No puedo hacer bc 200-100, para que me muestre la diferencia.
>
> Desconozco si existe algún otro modo de poder restar cantidades en consola
> directamente.



Re: Sacar registros a partir de una fecha.

2005-11-13 Thread Pablo Braulio
El Lunes, 14 de Noviembre de 2005 01:49, Ricardo Araoz escribió:
> Me quedó una duda... Por qué razón guardás un temp_log. No sería más
> directo hacer
> wc -l archivo_log | cut -d " " -f1 >archivo_lineas
> y ahorrarte el cat ? O me estoy perdiendo de algo?

La intención es sacar únicamente los logs generados entre dos fechas. Es 
decir, si se ejecuta cada hora, pues únicamente quiero ver los logs de ese 
intervalo.

Como no consigo hacer comparación de fechas, lo que estoy probando es saber la 
cantidad de líneas que tiene el syslog a una hora. Guardo esa cantidad en un 
archivo y luego, en la siguiente ejecución (una hora mas tarde), lo uso para 
restarlo al número de líneas totales. De este modo obtengo sólo las últimas 
líneas generadas del syslog, que son las que necesito.

Si ejecuto el wc directamente desde el syslog, y obtenido el número final de 
líneas a mostrar con tail, pierdo tiempo comparando las líneas antes de sacar 
los logs necesarios. Bueno tampoco se tardaría mucho, pero es que me 
interesan los logs de iptables y se generan muchas.


-- 
Saludos.
Pablo.

Fingerprint 5607 40CF 45EF D490 B794  5056 D7B2 C3DC ABF1 CE49
Jabber: bruli(at)myjabber(dot)net


pgpd6f4kXWtYp.pgp
Description: PGP signature


Re: Sacar registros a partir de una fecha.

2005-11-13 Thread Pablo Braulio
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

-- 
Saludos.
Pablo.

Fingerprint 5607 40CF 45EF D490 B794  5056 D7B2 C3DC ABF1 CE49
Jabber: bruli(at)myjabber(dot)net


pgpn8DXXaYfD8.pgp
Description: PGP signature


Re: Sacar registros a partir de una fecha.

2005-11-14 Thread Ricardo Frydman Eureka!
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Pablo Braulio wrote:
[...]
> 
> Si a alguien se le ocurre un modo de poder hacer esto, o sabe del comando que 
> pregunto, agradecería su ayuda.
DISCLAIMER: Sin haber leido ni uno solo de los correos del hilo (salvo
este) y a riesgo de estar contestando algo totalmente inutil e
improductivo...
... buscaste si no existe algo /ya hecho/ de lo que buscas? Puedes
llegar a sorprenderte!!!

BONUS TRACK DEL SOFTWARE LIBRE: Lees el codigo y aprendes como lo
hicieronluego nos cuentas ;)
- --
Ricardo A.Frydman
Consultor en Tecnología Open Source - Administrador de Sistemas
jabber: [EMAIL PROTECTED] - http://www.eureka-linux.com.ar
SIP # 1-747-667-9534
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.1 (GNU/Linux)

iD8DBQFDeIQukw12RhFuGy4RAhQTAJ0YqsySBLY1CUAtn2/FPpCTTvqXyQCeIjvN
vU+AlPNRY35fdLac/OgQyX8=
=WCp1
-END PGP SIGNATURE-



Re: Sacar registros a partir de una fecha.

2005-11-14 Thread Alfonso Pinto

 --- Carlos Zuniga <[EMAIL PROTECTED]> escribió:

> On 11/12/05, Pablo Braulio <[EMAIL PROTECTED]>
> wrote:
> > El Sábado, 12 de Noviembre de 2005 23:08,
> [EMAIL PROTECTED] escribió:
> > > con un solo comando no creo que puedas hacerlo,
> vas a tener que hacerte un
> > > script, quizás combinando grep con awk y printf
> (lo usual para estas
> > > cosas)..no sé, pero lo que me crea dudas es que
> quieres decir con que al
> > > mover syslog el sistema sigue escribiendo en ese
> fichero, y que no lo
> > > vuelve a crear? creo que no he entendido muy
> bien lo que has querido
> > > decir.
> > >
> > > responder una pregunta con otra pregunta es una
> putada , lo sé. :)
> > >
> >
> > Lo que quiero es hacer un script para esto. Ya
> tengo uno iniciado que me saca
> > los valores que quiero del  syslog.
> >
> > El problema es que me saca todos los campos que yo
> quiero del syslog, sin
> > poder filtrar por horas.
> >
> > Es decir.
> > Si ejecuto el script (en el cron) cada hora me
> repite demasiados datos. Si se
> > ejecuta a las 16:00 horas (p.e.), me sacará todos
> los valores desde las 6:33
> > horas hasta las 16:00 horas, y luego al volverse a
> ejecutar a las 17:00
> > horas, sacará los mismos valores añadiendo los
> que se han generado desde las
> > 16 hasta las 17.
> >
> > La finalidad de esto es meterlos en una base de
> datos.
> >
> > Lo que necesito es algún comando (si existe), que
> me permita mostrar valores a
> > partir de una hora. De ese modo podría decirle
> (al ejecutarse a las 17:00
> > horas), que me mostrara los valores desde las
> 16:00. Hora de la ejecución
> > anterior.
> >
> >
> > Otra cosa que se me había ocurrido es mover el
> archivo del syslog
> > (mv /var/log/syslog /directorio_destino), y sacar
> de ese archivo lo que
> > necesito. De este modo tendría los datos desde la
> última ejecución. Pero al
> > parecer el sistema no vuelve a generar un archivo
> donde introducir sus logs y
> > aunque lo cree manualmente y le asigne el
> propietario y los permisos
> > adecuados, no se llena de logs.
> 
> Lo que podrias hacer es pasar /var/log/syslog >>
> /var/log/syslog_bkp y
> borrarlo cosa que solo se guardan ahi los logs desde
> el momento que
> ejecutaste el script.

a mi lo que se me ocurre es:
cp /var/log/syslog /var/log/syslog_bkp && echo ""
>/var/log/syslog




__ 
Renovamos el Correo Yahoo! 
Nuevos servicios, más seguridad 
http://correo.yahoo.es


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: Sacar registros a partir de una fecha.

2005-11-14 Thread Alfonso Pinto

 --- Ricardo Araoz <[EMAIL PROTECTED]> escribió:

> Y si cuentas las líneas con que queda tu syslog y lo
> guardas en algún lado?
> Luego en la siguiente corrida haces un tail 
> -LineasGuardadas_menos_LineasActuales y te debería
> dar las líneas nuevas.
> No se cuan dificil pueda ser hacer ese script (nunca
> lo hice).
> 
> Ricardo

Yo creo que se podría hacer sin mucho problema en
perl, siempre y cuando se tuviese en cuenta a
logrotate claro.




__ 
Renovamos el Correo Yahoo! 
Nuevos servicios, más seguridad 
http://correo.yahoo.es


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: Sacar registros a partir de una fecha.

2005-11-14 Thread Alfonso Pinto

 --- Pablo Braulio <[EMAIL PROTECTED]> 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


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: Sacar registros a partir de una fecha.

2005-11-14 Thread Pablo Braulio
El Lunes, 14 de Noviembre de 2005 13:33, Ricardo Frydman Eureka! escribió:
> DISCLAIMER: Sin haber leido ni uno solo de los correos del hilo (salvo
> este) y a riesgo de estar contestando algo totalmente inutil e
> improductivo...
> ... buscaste si no existe algo /ya hecho/ de lo que buscas? Puedes
> llegar a sorprenderte!!!
>
> BONUS TRACK DEL SOFTWARE LIBRE: Lees el codigo y aprendes como lo
> hicieronluego nos cuentas ;)

A ver Ricardo. Sin ánimos de reproche ni nada que suene violento.

Si me estoy "complicando la vida", es por dos motivos:

1- Porque lo que he visto hasta ahora para tratar los logs, no me sirven 
totalmente. Siempre hay algo que no hacen. Aunque es verdad que podría usar 
algunas de estas herramientas ya hechas.

2- Porque "quiero o me da la gana", calentarme el coco para aprender un poco 
mas.

Con lo que llevo hecho hasta ahora he aprendido algunos comandos de cuya 
sintaxis o existencia desconocía, y posiblemente tenga que empaparme perl 
para depurar mejor lo que quiero hacer. Esto es más incómodo, complicado y da 
más dolores de cabeza, que buscar una aplicación ya hecha y aprender a 
usarla.

Opto por lo complicado y difícil para practicar un poco.


P.d.: espero que no haya sonado mal, pues no me molesta tu comentario.
-- 
Saludos.
Pablo.

Fingerprint 5607 40CF 45EF D490 B794  5056 D7B2 C3DC ABF1 CE49
Jabber: bruli(at)myjabber(dot)net


pgpy18MV6qvwU.pgp
Description: PGP signature


Re: Sacar registros a partir de una fecha.

2005-11-14 Thread Angel Claudio Alvarez
El lun, 14-11-2005 a las 08:13 +0100, Pablo Braulio escribió:
> El Lunes, 14 de Noviembre de 2005 01:49, Ricardo Araoz escribió:
> > Me quedó una duda... Por qué razón guardás un temp_log. No sería más
> > directo hacer
> > wc -l archivo_log | cut -d " " -f1 >archivo_lineas
> > y ahorrarte el cat ? O me estoy perdiendo de algo?
> 
> La intención es sacar únicamente los logs generados entre dos fechas. Es 
> decir, si se ejecuta cada hora, pues únicamente quiero ver los logs de ese 
> intervalo.
> 
> Como no consigo hacer comparación de fechas, lo que estoy probando es saber 
> la 
> cantidad de líneas que tiene el syslog a una hora. Guardo esa cantidad en un 
> archivo y luego, en la siguiente ejecución (una hora mas tarde), lo uso para 
> restarlo al número de líneas totales. De este modo obtengo sólo las últimas 
> líneas generadas del syslog, que son las que necesito.
> 
> Si ejecuto el wc directamente desde el syslog, y obtenido el número final de 
> líneas a mostrar con tail, pierdo tiempo comparando las líneas antes de sacar 
> los logs necesarios. Bueno tampoco se tardaría mucho, pero es que me 
> interesan los logs de iptables y se generan muchas.
> 
Te paso algo muy basico en perl para que veas que tu problema se
soluciona con perl
-
#!/usr/bin/perl 

my $fecha = @ARGV[0];

while ()
{
print if /^$fecha/;
}

---

usalo de la siguiente manera:
cat archivo | nombre_script "Nov 14"

El script tiene que tener permiso de ejecucion
y el aprametro que le pasas tiene que ser el comienzo de la linea con la
fecha que estas buscando




> 
-- 
Angel Claudio Alvarez
Usuario Linux Registrado 143466
GPG Public Key en http://pgp.mit.edu
key fingerprint = 3AED D95B 7E2D E954 61C8  F505 1884 473C FC8C 8AC4



signature.asc
Description: This is a digitally signed message part


Re: Sacar registros a partir de una fecha.

2005-11-15 Thread oscar
Estoy trabajando en una rutina para filtrar dado un rango numérico, pero 
charlando con un amigo me oriento a que esto se puede facilitar 
configurando el demonio que genera el archivo syslog, además que existen 
varios demonios alternativos.

Pablo Braulio wrote:


Hola a todos.

Estoy tratando se sacar los registros de syslog a partir de una fecha. 
("cat /var/log/syslog ")


¿Alguien sabe si hay algún comando que lo haga?. He revisado el man de grep, y 
no encuentro nada que lo pueda hacer.


Otra cosa que se me había ocurrido hacer es mover el archivo "syslog", pero al 
parecer el sistema no lo vuelve a crear nuevamente y sigue introduciendo 
datos en dicho fichero.
 




--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: Sacar registros a partir de una fecha.

2005-11-15 Thread oscar

Esta es la rutina es basado en Perl

*#!/usr/bin/perl*
open(texto, *"*/var/log/syslog*"*);  /# Abre diego.txt/
*while* ()
{
   @x = split (*"* *"*,$_);
   *if*(@x[0] *eq* *"[EMAIL PROTECTED]"*) /# Compara con el Mes/
{
  *if* ( @x[1] == @ARGV[1] ) /# Compara con el dia/
{
  @y = split ( *"*:*"*,@x[2] );
  *if* ( @y[0] >= @ARGV[2] *and* @y[0] <= 
@ARGV[3] ) /# Compara con intervalo de horas./
{ print $_;}/#imprime   $_/
}
}
}
close (texto);

tendras que crear un archivo el cual le pasas como parametro: el Mes, el 
Dia, Hora de Inicio y Hora de Fin.


oscar wrote:

Estoy trabajando en una rutina para filtrar dado un rango numérico, 
pero charlando con un amigo me oriento a que esto se puede facilitar 
configurando el demonio que genera el archivo syslog, además que 
existen varios demonios alternativos.

Pablo Braulio wrote:


Hola a todos.

Estoy tratando se sacar los registros de syslog a partir de una 
fecha. ("cat /var/log/syslog ")


¿Alguien sabe si hay algún comando que lo haga?. He revisado el man 
de grep, y no encuentro nada que lo pueda hacer.


Otra cosa que se me había ocurrido hacer es mover el archivo 
"syslog", pero al parecer el sistema no lo vuelve a crear nuevamente 
y sigue introduciendo datos en dicho fichero.
 







--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: Sacar registros a partir de una fecha.

2005-11-24 Thread Ricardo Araoz
Hola Pablo, 
Estaba mirando /etc/logrotate.conf y me acordé de este hilo.
Te quería comentar que si hubieras querido sacar los logs "entre dos fechas", 
tomando fechas como días y no como horas hubiera sido más directo configurar 
este archivo para que rotara este log "daily" (por supuesto, que guardando la 
cantidad de logs antiguos que creyeras necesario con rotate nn). Para algún 
interesado : man logrotate

Ricardo

El Lunes 14 Noviembre 2005 04:13, Pablo Braulio escribió:
> El Lunes, 14 de Noviembre de 2005 01:49, Ricardo Araoz escribió:
> > Me quedó una duda... Por qué razón guardás un temp_log. No sería más
> > directo hacer
> > wc -l archivo_log | cut -d " " -f1 >archivo_lineas
> > y ahorrarte el cat ? O me estoy perdiendo de algo?
>
> La intención es sacar únicamente los logs generados entre dos fechas. Es
> decir, si se ejecuta cada hora, pues únicamente quiero ver los logs de ese
> intervalo.
>
> Como no consigo hacer comparación de fechas, lo que estoy probando es saber
> la cantidad de líneas que tiene el syslog a una hora. Guardo esa cantidad
> en un archivo y luego, en la siguiente ejecución (una hora mas tarde), lo
> uso para restarlo al número de líneas totales. De este modo obtengo sólo
> las últimas líneas generadas del syslog, que son las que necesito.
>
> Si ejecuto el wc directamente desde el syslog, y obtenido el número final
> de líneas a mostrar con tail, pierdo tiempo comparando las líneas antes de
> sacar los logs necesarios. Bueno tampoco se tardaría mucho, pero es que me
> interesan los logs de iptables y se generan muchas.



Re: Sacar registros a partir de una fecha.

2005-11-24 Thread Pablo Braulio
On Thursday 24 November 2005 12:57, Ricardo Araoz wrote:
> Hola Pablo,
> Estaba mirando /etc/logrotate.conf y me acordé de este hilo.
> Te quería comentar que si hubieras querido sacar los logs "entre dos
> fechas", tomando fechas como días y no como horas hubiera sido más directo
> configurar este archivo para que rotara este log "daily" (por supuesto, que
> guardando la cantidad de logs antiguos que creyeras necesario con rotate
> nn). Para algún interesado : man logrotate

Gracias, lo miraré.
-- 
Saludos.
Pablo

Jabber: bruli(at)myjabber(to)net