GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo monitorear un árbol de directorios completo para detectar cambios en Linux?

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...


Linux
  1. Cómo actualizar un enlace simbólico de Linux

  2. Cómo crear un directorio compartido para todos los usuarios en Linux

  3. Cómo cambiar el nombre de un directorio en Linux

  4. ¿Cómo obtengo programáticamente el espacio libre en disco para un directorio en Linux?

  5. Cómo buscar una palabra en todo el contenido de un directorio en Linux

Cómo ver Hulu en Linux

Cómo monitorear cambios de archivos usando fswatch en Linux

Cómo ver la estructura del árbol de directorios en Linux

Cómo establecer un fondo de pantalla diferente para cada monitor en Linux

Cómo copiar un directorio en Linux

Comandos de directorio de Linux:una guía completa