Como un similar SO question, estoy tratando de monitorear un directorio en una caja 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?Directorio de monitores para cambios
Respuesta
Mire inotify.
Con inotify puede ver un directorio para la creación de archivos.
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.
Si desea procesarlas lo antes posible, no hay forma de evitar inotify. –
fschange (Linux File System Change Notification) es una solución perfecta, pero hay que parchear el núcleo
Tenga en cuenta la advertencia en la parte superior del artículo, '' 'fschange es una alternativa para inotify que [se] implementó antes de que inotify se convirtiera en parte del núcleo principal de Linux. '' ' – TechplexEngineer
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.
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
- 1. Desarrollo para monitores múltiples
- 2. ¿Hay una tarea ANT para ver un directorio de cambios?
- 3. Directorio de supervisión para cambios: memoria alta potencial
- 4. ¿Cómo ver un directorio de cambios?
- 5. Detectar ancho de pantalla para monitores múltiples
- 6. Creación de monitores en tiempo real robustos para las variables
- 7. Process.Start y monitores duales
- 8. Múltiples monitores en .NET
- 9. SetConsoleWindowInfo en varios monitores
- 10. Aplicación 3D de varios monitores
- 11. Notificación de cambios en el directorio de iPhone/Documentos
- 12. Eclipse Aplicación RCP: diseño de varias ventanas para monitores múltiples
- 13. archivo por lotes ~ dp0 cambios en el cambio de directorio
- 14. Coordenadas incorrectas en monitores múltiples
- 15. Visor VNC con monitores múltiples
- 16. Visual Studio y monitores duales/múltiples: ¿cómo puedo optimizar el uso de mis monitores?
- 17. cambios de github no configurados para commit
- 18. monitorear los cambios en un archivo o directorio?
- 19. monitores dobles de pygame y pantalla completa
- 20. Captura de pantalla Python 2+ monitores (ventanas)
- 21. ¿Se puede usar el renderizado OpenGL para monitores 3D?
- 22. Confirmar cambios solo en un directorio en Git
- 23. ¿Cómo puedo controlar un directorio de Windows para ver los cambios?
- 24. cambios de configuración en Tridion inorder para interactuar con el directorio activo
- 25. WMI Obtener todos los monitores que no devuelven todos los monitores
- 26. Prueba de objetos para cambios
- 27. Aplicaciones Kiosk - Programación OS X - Monitores múltiples
- 28. ¿Cómo configuro IntelliJ en monitores duales?
- 29. Evite detectar archivos incompletos al mirar un directorio para ver cambios en Java
- 30. Múltiples monitores con Visual Studio 2008
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
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
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