inotifywait es una herramienta que forma parte del paquete inotify-tools, la cual permite monitorear en tiempo real los cambios que ocurren en un directorio o archivo en Linux. Es muy útil para detectar modificaciones como creación, eliminación, renombrado o acceso a archivos.
Primero, asegúrate de tener inotify-tools instalado en tu sistema. Dependiendo de tu distribución de Linux, puedes instalarlo usando los siguientes comandos:
sudo apt install inotify-tools
sudo yum install inotify-tools
sudo pacman -S inotify-tools
Para monitorear un directorio en tiempo real, puedes utilizar el comando básico:
inotifywait -m /ruta/al/directorio
Este comando:
inotifywait
en modo "monitor", es decir, no termina después de la primera detección, sino que sigue escuchando los eventos hasta que se detenga el proceso.
inotifywait -m /home/usuario/Documentos
Este comando monitoreará el directorio /home/usuario/Documentos
y mostrará cualquier cambio que ocurra en tiempo real.
Al usar inotifywait
, puedes especificar qué tipo de eventos deseas monitorizar. Algunos de los eventos más comunes incluyen:
Puedes monitorear eventos específicos utilizando la opción -e
:
inotifywait -m -e create -e delete /home/usuario/Documentos
Este comando solo monitoreará la creación y eliminación de archivos dentro del directorio.
Si deseas que inotifywait
te muestre más detalles, como el nombre del archivo afectado y el tipo de evento, simplemente usa el comando sin opciones adicionales, o si prefieres más filtros puedes hacer combinaciones:
inotifywait -m -e modify,create,delete /home/usuario/Documentos
Este comando mostrará las modificaciones, creaciones y eliminaciones en tiempo real dentro del directorio.
/home/usuario/Documentos/ CREATE nuevo_archivo.txt
/home/usuario/Documentos/ MODIFY archivo_existente.txt
/home/usuario/Documentos/ DELETE otro_archivo.txt
Es posible ejecutar un comando cuando se detecta un evento específico. Por ejemplo, para ejecutar un script cuando se crea un archivo en un directorio:
inotifywait -m -e create /home/usuario/Documentos | while read path action file; do
echo "Se ha creado el archivo '$file' en el directorio '$path'"
done
Este comando muestra un mensaje personalizado cada vez que se crea un archivo en el directorio especificado.
Jorge García
Fullstack developer