He hecho algo similar usando el inotifywait
herramienta:
#!/bin/bash
while true; do
inotifywait -e modify,create,delete -r /path/to/your/dir && \
<some command to execute when a file event is recorded>
done
Esto configurará controles de directorio recursivos en todo el árbol y le permitirá ejecutar un comando cuando algo cambie. Si solo desea ver los cambios, puede agregar el -m
bandera para ponerlo en modo monitor.
Que yo sepa, no hay otra forma que establecer recursivamente un inotify
ver en cada directorio.
Dicho esto, no se quedará sin descriptores de archivo porque inotify
no tiene que reservar un fd para ver un archivo o un directorio (su predecesor, dnotify
, sufría de esta limitación). inotify
usa "ver descriptores" en su lugar.
Según la documentación de inotifywatch, el límite predeterminado es 8192 descriptores de vigilancia y puede aumentarlo escribiendo el nuevo valor en /proc/sys/fs/inotify/max_user_watches
.
$ inotifywait -m -r /path/to/your/directory
Este comando es suficiente para observar el directorio de forma recursiva para todos los eventos, como acceder, abrir, crear, eliminar...