GNU/Linux >> Tutoriels Linux >  >> Linux

Comment surveiller les modifications de fichiers à l'aide de fswatch sous Linux

Fswatch est un utilitaire gratuit et open source de surveillance des modifications de fichiers multiplateforme qui nous avertit lorsque le contenu des fichiers ou répertoires spécifiés est modifié ou changé. En utilisant fswatch, nous pouvons facilement surveiller les modifications apportées aux fichiers et/ou aux répertoires. Il prend en charge tous les systèmes d'exploitation, y compris GNU/Linux, *BSD, Mac OS X, Solaris et Microsoft Windows, etc. Dans ce bref guide, laissez-moi vous montrer comment surveiller les modifications de fichiers à l'aide de fswatch dans les systèmes d'exploitation de type Unix.

Types de surveillance

fswatch implémente les types de moniteurs suivants.

  • Un moniteur basé sur l'API File System Events d'Apple OS X.
  • Un moniteur basé sur kqueue, une interface de notification introduite dans FreeBSD 4.1.
  • Un moniteur basé sur l'API File Events Notification du noyau Solaris et ses dérivés.
  • Un moniteur basé sur inotify, un sous-système du noyau Linux qui signale les modifications du système de fichiers aux applications.
  • Un moniteur basé sur ReadDirectoryChangesW, une API Microsoft Windows qui signale les modifications apportées à un répertoire.
  • Un moniteur qui établit périodiquement des statistiques sur le système de fichiers, enregistre les heures de modification des fichiers en mémoire et calcule manuellement les modifications du système de fichiers.

Caractéristiques

Concernant les fonctionnalités, nous pouvons énumérer les éléments suivants :

  • Utilitaire multiplateforme et open source
  • Compatibilité avec de nombreuses API spécifiques au système d'exploitation
  • Surveillance récursive des répertoires.
  • Filtrage des chemins à l'aide d'expressions régulières d'inclusion et d'exclusion.
  • Format d'enregistrement personnalisable.
  • Prise en charge des événements d'inactivité périodiques.
  • Et beaucoup.

Surveiller les modifications de fichiers à l'aide de fswatch sous Linux

Étant donné que l'utilitaire fswatch n'est pas disponible dans les référentiels par défaut de la plupart des distributions Linux, vous devez compiler et installer manuellement la dernière version à partir de la source, comme décrit ci-dessous.

Avant de compiler, vous devez installer les outils de développement dans votre distribution Linux. Pour installer les outils de développement sur différentes distributions Linux, reportez-vous au guide suivant.

  • Comment installer les outils de développement sous Linux

Ensuite, téléchargez le fichier source fswatch d'ici .

$ wget https://github.com/emcrisostomo/fswatch/releases/download/1.9.3/fswatch-1.9.3.tar.gz

Extrayez l'archive téléchargée :

$ tar -zxvf fswatch-1.9.3.tar.gz

Accédez au dossier du projet :

$ cd fswatch-1.9.3/

Enfin, compilez et installez fswatch en exécutant les commandes suivantes une par une.

$ ./configure
$ make
$ sudo make install

Enfin, exécutez la commande suivante pour actualiser les liens et le cache vers les bibliothèques dynamiques :

$ sudo ldconfig

Si vous n'exécutez pas la commande ci-dessus, vous risquez d'obtenir l'erreur suivante dans les systèmes GNU/Linux.

fswatch: error while loading shared libraries: libfswatch.so.6: cannot open shared object file: No such file or directory

utilisation de fswatch

L'utilisation de fswatch n'est pas un gros problème. La syntaxe typique de fswatch est :

$ fswatch [options] ... path-0 ... path-n

Pour tester le fonctionnement de fswatch, ouvrez deux fenêtres Terminal (appelons-les Terminal 1 et Terminal 2 ).

Dans le terminal 1, exécutez la commande fswatch pour surveiller le répertoire $HOME.

$ fswatch /home/sk/

Et, dans le Terminal 2, effectuez certaines opérations telles que la création de fichiers/dossiers, la suppression de fichiers, la modification de fichiers, etc.

Quoi que vous fassiez dans le terminal 2, vous serez notifié sur le terminal 1. Regardez les captures d'écran suivantes.

Terminal 1 - La commande fswatch est en cours d'exécution et les modifications du fichier sont surveillées :

Surveiller les modifications de fichiers à l'aide de fswatch

Terminal 2 - Effectuez des modifications aléatoires dans les fichiers/dossiers :

Par défaut, fswatch choisira le meilleur moniteur disponible sur la plate-forme actuelle, en termes de performances et de consommation de ressources. Sous Linux, le moniteur par défaut est inotify .

Pour répertorier les moniteurs disponibles sur la plate-forme actuelle (c'est-à-dire Linux dans notre cas), exécutez :

$ fswatch -M

Ou,

$ fswatch --list-monitors

Exemple de résultat :

inotify_monitor
poll_monitor

Pour surveiller un fichier ou un répertoire spécifique avec une option de surveillance particulière, exécutez :

$ swatch -m kqueue_monitor /home/sk/

Par défaut, fswatch continuera à surveiller les modifications du fichier jusqu'à ce que vous l'arrêtiez manuellement en appelant CTRL+C clés.

Vous pouvez également quitter fswatch après la réception du premier ensemble d'événements en spécifiant l'option -1 comme indiqué dans la commande suivante :

$ fswatch -1 /home/sk/

Cette commande se terminera juste après la réception du premier ensemble d'événements.

fswatch surveillera les modifications dans tous les fichiers/dossiers du chemin spécifié. Si vous voulez regarder les modifications apportées uniquement dans les répertoires, utilisez -d option.

$ fswatch -d /home/sk/

Bien sûr, il y a plus d'options. Reportez-vous aux pages de manuel ou à la page de documentation du projet pour des instructions détaillées.

$ man fswatch

Linux
  1. Comment surveiller l'activité Ethernet sous Linux à l'aide d'Arpwatch

  2. Comment renommer un fichier sous Linux ?

  3. Comment créer des fichiers fragmentés sous Linux à l'aide de la commande "dd"

  4. Comment joindre un fichier en utilisant la commande mail sous Linux ?

  5. Comment puis-je surveiller les données sur un port série sous Linux ?

Comment surveiller les serveurs Linux à l'aide de CloudStats

Comment créer un lien symbolique sous Linux à l'aide de la commande Ln

Comment surveiller la disponibilité du système Linux à l'aide d'Uptimed

Comment verrouiller un fichier texte sous Linux à l'aide de la commande flock

Comment créer un lien symbolique vers un fichier sous Linux

Comment télécharger un fichier à l'aide de Wget via un proxy sous Linux