Como saber cuando cambia un archivo

Aldrin Gonzalo Martoq Ahumada amartoq en dcc.uchile.cl
Vie Mayo 4 15:02:07 CLT 2007


On 5/3/07, Morenisco <morenisco en gmail.com> wrote:
>
> En un sistema hay un archivo, que cuando sucede X cosa, genera log. Es
> como
> el log del correo, cuando el servicio esta arribay hay actividad, se
> generan
> nuevas lineas en el archivo.
> La idea es que necesito saber cuando ese archivo cambia...
> Bueno, se me ocurrio obtener el obtener un md5sum del archivo, luego
> compararlas cada cierto tiempo.
> Otra posibilidad seria hacer una copia del archivo y en un tiempo delta t
> hacer un diff.
> Otra, seria tomar la ultima linea del archivo, y compararla...mmm
> pensandolo
> bien eso seria como lo mas 'liviano'.
> Alguna idea?
>

Si, que no es recomendado lo que intentas hacer.

Conceptualmente los archivos de logs estan pensandos para que un *humano*
revise eventos, no para generarlos. En chileno: para revisar por que quedo
la c*g*... Por eso se rotan (borran cada cierto tiempo), pues son
"desechables".

Es muy mala idea generar eventos de ellos, o extraer informacion "valiosa"
(como los registros perdidos de una base de datos); para el primer caso, la
aplicacion debe proveer algun mecanismo de eventos, para el segundo caso la
aplicacion debe proveer historiales de transaccion (muchas bases de datos y
aplicaciones de mensajeria hacen esto). Deben haber otros casos que no se me
ocurren ahora.


No puedes cambiar o configurar la aplicacion, de modo de llamar a un shell
script por ejemplo cuando ocurre el evento X?

-- 
Aldrin Martoq


Más información sobre la lista de distribución Linux