Comment surveiller en permanence le répertoire à l'aide de dnotify /inotify commande
Je suis nouveau sur dnotify/inotify de commande. Quelqu'un peut-il m'aider comment écrire un script tel qu'il surveille en permanence un répertoire et indique qu'il y a un peu de changement ou de modification.
Vous devez vous connecter pour publier un commentaire.
Inotify lui-même est un module du noyau accessible via des appels, par exemple, d'un programme C.
http://www.ibm.com/developerworks/linux/library/l-ubuntu-inotify/
Il y est une suite d'applications appelée inotify-tools, qui contient:
et
Vous pouvez utiliser inotify directement à partir de la ligne de commande, comme ceci, de contrôler en permanence pour toutes les modifications en vertu de répertoire peut générer beaucoup de puissance de sortie):
Et voici un script qui surveille en permanence et réagit à Apache de l'activité du journal, copié à partir de l'homme de fichier de inotifywait:
do
est en cours d'exécution.Ci-dessous est ce que j'utilise pour voir les opérations sur un fichier individuel. "-m" causes de surveillance de la vs à la sortie après un événement. Pour obtenir des horodateurs, vous avez besoin d'au moins 3.13 version de inotify-tools, mais si ce n'est pas important (ou pas disponible sur votre système d'exploitation ou dur pour mise à jour), vous pouvez sauter le timefmt et les options de format. "cat /etc/resolv.conf" dans un autre shell conduit aux résultats ci-dessous:
inotifywait a des options pour la surveillance des répertoires ainsi, afin de vérifier la page de manuel. Ajoutez -r pour récursif pour surveiller les enfants d'un dir.
Voici un exemple avec les commandes que j'ai tapé dans une autre fenêtre affichée avec l'option "->" préfixe:
Après ce qui précède, j'ai essayé de refaire le tmpdir ("mkdir tmpdir") mais pas de sortie de la. La nouvelle tmpdir n'est pas le même répertoire que l'ancien tmpdir. Le temps de ^C et arrêter itnotifywait.
Comme je l'ai dit sur https://superuser.com/a/747574/28782, j'ai fait un script d'aide qui utilise inotifywait sans certains de ses directe les limites: inotifyexec
Exemple d'utilisation (en supposant que vous l'avez ajouté dans votre chemin d'accès au système en tant que fichier exécutable):