fswatch est un moniteur de changement de fichiers multiplateforme qui reçoit des alertes de notification lorsque le contenu des fichiers ou des répertoires spécifiés est modifié ou altéré.
Il exécute quatre types de moniteurs sur différents systèmes d’exploitation tels que :
- A monitor build on the File System Events API of Apple OS X.
- A monitor based on kqueue, a notification interface present in FreeBSD 4.1 also supported on many *BSD systems, OS X inclusive.
- A monitor based on File Events Notification API of the Solaris kernel plus its spin-offs.
- A monitor based on inotify, a kernel subsystem that shows file system modifications to apps.
- A monitor based on ReadDirectoryChangesW, a Windows API that records alters to a directory.
- A monitor that regularly check that status of file system, keeps file modification times in memory, and manually determine file system changes (which works anywhere, where stat can be used).
Caractéristiques de fswatch
- Prise en charge de plusieurs API spécifiques à un système d’exploitation
- Permet la surveillance récursive des répertoires
- Effectue un filtrage de chemin en utilisant des expressions régulières d’inclusion et d’exclusion
- Prise en charge du format d’enregistrement personnalisable
- De plus, il prend en charge les événements d’inactivité périodiques
Comment installer fswatch dans les systèmes Linux
Malheureusement, le paquet fswatch n’est pas disponible pour être installé à partir des dépôts système par défaut dans les distributions Linux. La seule façon d’installer la dernière version de fswatch est de le compiler à partir de l’archive source comme indiqué dans les instructions d’installation suivantes.
Tout d’abord, récupérez la dernière archive tar fswatch en utilisant la commande wget suivante et installez-la comme indiqué :
$ 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
Important : Assurez-vous d’avoir GNU GCC (compilateur C et C++) et les outils de développement (build-essential sur Debian/Ubuntu) installés sur le système avant de compiler fswatch à partir de la source. Si ce n’est pas le cas, installez-le en utilisant la commande suivante sur vos distributions Linux respectives.
# yum group install 'Development Tools' [On CentOS/RHEL] # dnf group install 'Development Tools' [On Fedora 22+ Versions] $ sudo apt-get install build-essential [On Debian/Ubuntu Versions]
Sur les distributions Debian/Ubuntu, vous pourriez rencontrer l’erreur suivante lors de l’exécution de la commande fswatch..
fswatch: error while loading shared libraries: libfswatch.so.6: cannot open shared object file: No such file or directory
Pour corriger cela, vous devez exécuter la commande ci-dessous, cela permettra de rafraîchir les liens et le cache des bibliothèques dynamiques avant de pouvoir commencer à utiliser fswatch.
$ sudo ldconfig
Comment utiliser fswatch sous Linux?
La syntaxe générale pour exécuter fswatch est la suivante:
$ fswatch [option] [path]
Sous Linux, il est recommandé d’utiliser le moniteur inotify par défaut, vous pouvez lister les moniteurs disponibles en utilisant l’option -M
ou - list-monitors
:
$ fswatch -M $ fswatch --list-monitors

La commande ci-dessous vous permet de surveiller les modifications dans le répertoire courant (/home/tecmint
), avec les événements envoyés en sortie standard toutes les 4 secondes.
L’option -l
ou --latence
vous permet de définir la latence en secondes, la valeur par défaut étant de 1 seconde.
$ fswatch -l 4 .
La commande suivante surveille les modifications du fichier /var/log/auth.log toutes les 5 secondes:
$ fswatch -l 5 /var/log/auth.log
En utilisant l’option -t
ou --horodatage
affiche le horodatage pour chaque événement, pour afficher l’heure au format UTC, utilisez l’option -u
ou --utf-time
. Vous pouvez également formater l’heure en utilisant l’option -f
ou --format-time
:
$ fswatch --timestamp /var/log/auth.log
Ensuite, -x
ou --drapeaux-evenement
indique à fswatch d’afficher les drapeaux d’événement à côté du chemin de l’événement. Vous pouvez utiliser l’option –separateur-champ-evenement pour afficher les événements en utilisant un séparateur particulier.
$ fswatch --events-flags ~ /var/log/auth.log
Pour imprimer la valeur numérique d’un événement indiquant des modifications dans votre répertoire home et le fichier /var/log/auth.log, utilisez l’option -n
ou --numeric
comme ci-dessous :
$ fswatch --numeric ~ /var/log/auth.log
Peut-être pouvez-vous consulter la page de manuel de fswatch pour des options d’utilisation détaillées et des informations :
$ man fswatch
Pour plus d’informations et d’utilisation, visitez le dépôt Github de fswatch : https://github.com/emcrisostomo/fswatch
Dans cet article, nous avons couvert un utilitaire de ligne de commande simple pour aider les utilisateurs Linux à être notifiés lorsque le contenu de fichiers spécifiés ou de hiérarchies de répertoires est modifié.
I hope all went well with the installation, if that is not the case for you, make an effort to reach us via the feedback form below. In addition, in case you have used it before, you may want to offer us some thoughts about your experience with fswatch.
Source:
https://www.tecmint.com/fswatch-monitors-files-and-directory-changes-modifications-in-linux/