Linux/Unix Shell Scripting - Detectar escritura en archivos

 
Vista:

Detectar escritura en archivos

Publicado por AlvaroLuna (7 intervenciones) el 08/02/2007 16:57:22
Buenas a todos.

Quiero detectar cuándo se escribe en un archivo, para en base a eso ejecutar unas acciones posteriores. ¿Como detecto esta situacion de que se haya escrito? Es un fichero que cambia cada cierto tiempo, cuando cambia quiero leer las ultimas lineas del fichero para ver lo que se ha escrito y ejecutar unas acciones u otras segun lo que se haya escrito.

Lo he intentado con C con la función select pero no estoy obteniendo resultados y he pensado que quiza algun script shell pueda hacer lo que quiero.

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Detectar escritura en archivos

Publicado por n0str0m0 (180 intervenciones) el 08/02/2007 23:08:48
Se me ocurre que monitorices el tamaño en bytes del fichero

tam_anterior ls -lh minicom.log |awk '{print $5}'

Y cuando este tamaño cambie, lees el contenido o las últimas líneas (tail y tac) y realizas las acciones que creas oportunas.

Aparte de esto, hay un daemon que monitoriza el acceso a los ficheros, para saber cuándo cambian (útil si estás haciendo instalaciones o modificaciones en tu sistema), pero no recuerdo el nombre :(

Salu2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Detectar escritura en archivos

Publicado por Tom (361 intervenciones) el 09/02/2007 11:22:01
Mucho más fácil :-) Tail lo hace todo por tí.

tail -n0 -f fichero_a_leer | while read linea
do
# ... en función de la lína leída, haz lo que necesites
done
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar