linux - mp3tag - Monitorear el directorio para cambios
Al igual que una pregunta similar de SO , estoy tratando de controlar un directorio en una caja de Linux para la adición de nuevos archivos y me gustaría procesar inmediatamente estos nuevos archivos cuando lleguen. ¿Alguna idea sobre la mejor manera de implementar esto?
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.
fschange (Notificación de cambio de sistema de archivos de Linux) es una solución perfecta, pero necesita parchear su kernel
Primero asegúrate de que inotify-tools
esté instalado.
Entonces úsalos así:
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"
Alternativamente, usar --format
lugar de -c
en inotifywait
sería una idea.
Simplemente el man inotifywait
y el man inotifywatch
para obtener más información.
También puede usar incron
y usarlo para llamar a un script de manejo.