GNU/Linux >> Tutoriels Linux >  >> Linux

Utiliser Inotify pour surveiller l'accès à un fichier ?

J'aimerais avoir un déclencheur et lorsqu'un fichier particulier est accédé par un processus, j'aimerais être averti (c'est-à-dire qu'un script doit être exécuté). Si je comprends bien, cela pourrait être réalisé avec inotify .

Si j'ai un fichier /foo/bar.txt comment configurer inotify surveiller ce fichier ?

J'utilise Debian Wheezy avec le noyau 3.12 (mon noyau prend en charge inotify)

Réponse acceptée :

D'après Gilles sur Super User :

Simple, en utilisant inotifywait (installez les inotify-tools de votre distribution paquet):

while inotifywait -e close_write myfile.py; do ./myfile.py; done

Cela a une grosse limitation :si un programme remplace myfile.py avec un fichier différent, plutôt que d'écrire dans le myfile existant , inotifywait mourront. La plupart des éditeurs fonctionnent de cette façon.

Pour surmonter cette limitation, utilisez inotifywait sur le répertoire :

while true; do
  change=$(inotifywait -e close_write,moved_to,create .)
  change=${change#./ * }
  if [ "$change" = "myfile.py" ]; then ./myfile.py; fi
done

Linux
  1. Comment auditer l'accès aux fichiers sous Linux

  2. accès simultané au fichier linux

  3. emplacement du fichier temporaire lors de l'utilisation de tmpfile() en C

  4. Utiliser le trait de soulignement dans les noms de fichiers ?

  5. Comment remplir un fichier avec FF en utilisant dd ?

Utilisation du fichier de configuration SSH

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

Surveillance de l'accès aux fichiers Linux ?

Utiliser Uniq sur le texte Unicode ?

Comment :une introduction à l'utilisation de Git

Transférer des fichiers à l'aide de WinSCP