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
Attachment:
pgp3x4jX6ZYPb.pgp
Description: PGP signature