1 votes

comment faire pour que pyinotify lance un programme à chaque modification d'un fichier ?

Je dois surveiller toute entrée ou toute modification apportée au contenu actuel d'un fichier. En cas de modification, je dois exécuter un programme Python qui se trouve dans le même dossier.

J'ai fait de mon mieux pour comprendre mais je n'arrive pas à obtenir un bon résultat. Si quelqu'un pouvait m'aider à résoudre ce problème, ce serait d'une grande aide.

2voto

Hyppy Points 15356

Vous pouvez faire l'une des deux choses suivantes.

  • Vous pouvez écrire un programme qui s'accroche directement à l'API inotify et réagit aux événements de changement. C'est probablement la solution la plus élégante, mais elle dépasse largement le cadre de ServerFault.
  • Vous pouvez utiliser inotifywait (partie de inotify-tools ) pour surveiller un fichier et déclencher un script dès que quelque chose se passe.

Pour inotifywait, vous voudriez configurer un Shell Shell (dans init.d, très probablement) pour faire quelque chose de ce genre :

#!/bin/sh
while inotifywait -e modify /path/to/file
do
   /path/to/reaction_script.py
done

N'utilisez pas le -m switch lorsque vous appelez inotifywait dans une conditionnelle comme celle-ci ; cela ne fonctionnera pas.

0 votes

J'utilisais en fait pyinotify, mais ici je n'ai pas pu trouver la balise puisque je suis nouveau et qu'on ne m'a pas donné le droit de créer la balise même, de toute façon j'ai trouvé la solution en utilisant le gestionnaire d'événement dans pyinotify. Merci beaucoup pour votre temps :) :)

0 votes

Aucun problème. Comme je l'ai dit, cependant, tout ce qui dépasse les scripts bash/vb de base est généralement en dehors de la portée de ServerFault. Vous serez peut-être mieux servi (plus rapidement/précisément) sur les questions Python sur notre site frère StackOverflow.com

0 votes

Mais désolé, je ne peux pas accepter votre réponse puisque je ne l'ai pas essayé :-/ Bonne journée :) :)

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X