Table of Contents
fswatch: supervisa cambios o modificaciones de archivos y directorios en Linux
fswatch. es un monitor de cambio de archivos multiplataforma que recibe alertas de notificación cuando el contenido de los archivos o directorios especificados es alterado o modificado.
Ejecuta cuatro tipos de monitores en diferentes sistemas operativos, como:
- Un monitor basado en la API de eventos del sistema de archivos de Apple OS X.
- Un monitor basado en kqueue. una interfaz de notificación presente en FreeBSD 4.1 también compatible con muchos sistemas * BSD, OS X incluido.
- Un monitor basado en la API de notificación de eventos de archivos del kernel de Solaris más sus derivados.
- Un monitor basado en inotify, un subsistema del kernel que muestra las modificaciones del sistema de archivos a las aplicaciones.
- Un monitor basado en ReadDirectoryChangesW, una API de Windows que registra cambios en un directorio.
- Un monitor que verifica regularmente el estado del sistema de archivos, mantiene los tiempos de modificación de los archivos en la memoria y determina manualmente los cambios en el sistema de archivos (que funciona en cualquier lugar, donde se pueden usar estadísticas).
- Admite varias API específicas del sistema operativo
- Permite la supervisión recursiva de directorios
- Realiza el filtrado de rutas mediante la inclusión y exclusión de expresiones regulares
- Admite formato de registro personalizable
- Además, admite eventos inactivos periódicos
Características de fswatch
Cómo instalar fswatch en sistemas Linux
Desafortunadamente, fswatch. el paquete no está disponible para instalar desde los repositorios del sistema predeterminados en ninguna distribución de Linux. La única forma de instalar la última versión de fswatch. es compilar a partir del código fuente tarball como se muestra en las siguientes instrucciones de instalación.
Primero, obtenga la última versión de fswatch. tarball usando el siguiente comando wget e instálelo como se muestra:
$ wget https://github.com/emcrisostomo/fswatch/releases/download/1.9.3/fswatch-1.9.3.tar.gz $ tar-xvzf fswatch-1.9.3.tar.gz $ cd fswatch-1.9.3 $ ./configure $ make $ sudo make install
Importante. asegúrese de ‘ ve GNU GCC (compilador de C y C ++) y herramientas de desarrollo ( build-essential. en Debian/Ubuntu. instaladas en el sistema, antes de compilar fswatch desde la fuente. Si no, instálelo usando el siguiente comando en sus respectivas distribuciones de Linux ..
# yum group install ‘Development Tools’ [On CentOS/RHEL. # dnf group install ‘Development Tools’ [On Versiones de Fedora 22+. $ sudo apt-get install build-essential [En versiones de Debian/Ubuntu. freestar.config.enabled_slots.push
En distribuciones Debian/Ubuntu. es posible que obtenga el siguiente error al ejecutar el comando fswatch. ..
fswatch: error while cargando bibliotecas compartidas: libfswatch.so.6: no se puede abrir el archivo de objeto compartido: no existe tal archivo o directorio
Para solucionarlo, debe ejecutar el comando a continuación, esto ayudará a actualizar los enlaces y la caché a las bibliotecas dinámicas antes que usted puede comenzar a usar fswatch.
$ sudo ldconfig
¿Cómo uso fswatch en Linux?
La sintaxis general para ejecutar fswatch es:
$ fswatch [opción] [pat h]
En Linux. se recomienda que utilice el monitor inotify. predeterminado, puede enumerar los monitores disponibles empleando la opción-M o-list-monitores:
$ fswatch-M $ fswatch–list-monitor
fswatch-Lista de monitores
El siguiente comando habilita para ver los cambios en el directorio actual (/home/tecmint), con eventos que se envían a la salida estándar cada 4. segundos.
La opción-l o –-latency permite que establezca la latencia en segundos, el valor predeterminado siendo 1. segundo.
$ fswatch-l 4.
El siguiente comando monitorea los cambios en /var/log/auth.log. archivo cada 5. segundos:
$ fswatch-l 5/var/log/auth.log
El uso de la opción-t o–timestamp imprime la marca de tiempo de cada evento, para imprimir la hora en formato UTC. utilice la opción-u o–utf-time. También puede formatear la hora usando la opción de formato-fo–format-time:
$ fswatch–timestamp/var/log/auth.log
Siguiente,-xo–event-flags indica fswatch. para imprimir las banderas de eventos a lo largo de la ruta del evento. Puede usar la opción –event-field-seperator. para imprimir eventos usando el separador particular.
$ fswatch–events-flags ~/var/log/auth.log
Para imprimir el valor numérico de un evento que indica cambios en su directorio de inicio. y en el archivo /var/log/auth.log. use la opción-n o–numeric como se muestra a continuación:
$ fswatch–numeric ~/var/log/auth.log
Quizás pueda consultar la página de manual de fswatch. para obtener información y opciones de uso detalladas:
$ man fswatch
Para obtener más información y uso, visite el repositorio fswatch. de Github: https://github.com/emcrisostomo/fswatch
En esta publicación, cubrimos una utilidad de línea de comandos simple para ayudar a los usuarios de Linux a recibir notificaciones cuando se modifiquen los contenidos de archivos o jerarquías de directorios especificados.
Espero que todo haya ido bien con la instalación, si ese no es su caso, haga un esfuerzo para comunicarse con nosotros a través del formulario de comentarios a continuación. Además, en caso de que lo haya usado antes, es posible que desee ofrecernos algunas ideas sobre su experiencia con fswatch.