2009-02-04 13 views

Respuesta

23

Mire inotify.

Con inotify puede ver un directorio para la creación de archivos.

+3

Inotify no admite la observación recursiva de directorios, lo que significa que se debe crear un reloj de inotify separado para cada subdirectorio. Mantén esto en mente. – Jason

+0

También vea el paquete llamado [incron] (http://inotify.aiken.cz/?section=incron&page=why) y su [página de manual] (http://linux.die.net/man/5/incrontab). No estoy seguro de cómo maneja las subcarpetas. – BeowulfNode42

+0

No, incron no maneja las subcarpetas, falló totalmente en una campaña apropiada de "indiegogo", e incron se quedó dormido en 2012. Triste, pero llegó a un callejón sin salida. Realmente espero, inotify se mantendrá ;-) – Frunsi

0

Una solución en la que pensé es crear un "detector de archivos" junto con un trabajo cron. No estoy loco por esto, pero creo que podría funcionar.

+0

Si desea procesarlas lo antes posible, no hay forma de evitar inotify. –

25

En primer lugar asegúrese inotify-tools in instalado.

Entonces ellos utilizan como esto:

logOfChanges="/tmp/changes.log.csv" # Set your file name here. 

# Lock and load 
inotifywait -mrcq $DIR > "$logOfChanges" & 
IN_PID=$$ 

# Do your stuff here 
... 

# Kill and analyze 
kill $IN_PID 
while read entry; do 
    # Split your CSV, but beware that file names may contain spaces too. 
    # Just look up how to parse CSV with bash. :) 
    path=... 
    event=... 
    ... # Other stuff like time stamps? 
    # Depending on the event… 
    case "$event" in 
    SOME_EVENT) myHandlingCode path ;; 
    ... 
    *) myDefaultHandlingCode path ;; 
done < "$logOfChanges" 

Por otra parte, el uso de --format en lugar de -c en inotifywait sería una idea.

Just man inotifywait y man inotifywatch para obtener más información.

También puede usar incron y usarlo para llamar a un script de manejo.

+1

Gracias, la mejor respuesta hasta el momento. Estaba seguro de que había algo ingenioso con inotify y esto es exactamente. Funciona como un encanto. – akostadinov

Cuestiones relacionadas