Niveau :      
Résumé : inotifywait -m

Vous avez un noyau 2.6, si l'option inotify a été activée alors vous avez entre les mains un outil bien pratique pour savoir ce qui se passe sur votre système de fichier.

Le paquet inotify-tools contient 2 commandes : inotifywait et inotifywatch. Ces commandes permettent de monitorer des évènements sur le système de fichier. Inotifywatch ne sert qu'aux statistiques tandis que inotifywait permet d'avoir les évènements exacts qui se sont produits.

Inotifywatch peut servir à détecter les causes de certains problèmes de performance. Par exemple avec la commande suivante, vous saurez quels sont les fichiers très fréquemment lus par votre serveur web et donc quelles sont les lectures à optimiser ou à mettre en cache.

$ inotifywatch -t 600 -r /var/www

Attention, il se peut que vous atteigniez rapidement le nombre maximum de fichier à surveiller à cause de la récursivité. Pour changer cette limite écrivez le maximum désiré dans /proc/sys/fs/inotify/max_user_watches

La commande inotifywait, elle, écoute les évènements et les affiche au fur et à mesure. Pour écouter en continu tous les évènements sur un fichier donné :

$ inotifywait -m /tmp/toto.txt

Grâce à ce petit outil nous pouvons écrire un démon pour recopier automatiquement un fichier dans un autre répertoire à chaque fois qu'un nouveau fichier est ajouté ou modifié dans un premier répertoire. C'est une forme de backup instantané qui vous protège des suppressions.

$ inotifywait -e modify,create --format "%w%f" -q -m /chemin | xargs -n 1 -I{} rsync {} /backup/

Mais je suis sûr que vous trouverez des utilisations bien plus intéressantes à ce petit outil.