# Surveillance des altérations au système de fichiers



## hernick (29 Avril 2005)

Bonjour,

J'ai développé un outil en Python pour faciliter l'utilisation du système de gestion de sources Subversion. Mon outil, svn_autocommit, surveille des répertoires sélectionnés et détecte les altérations aux fichiers. Par exemple, si un fichier est modifié et sauvegardé, celà constitue une altération. Mon outil éxécute ensuite une série d'opérations sur le fichier altéré: un commit SVN, et une demande à un serveur distant de faire un update SVN sur ce repository.

De cette manière, mon équipe de travail développe en local et les modifications au code sont automatiquement envoyées au serveur de test. Celà facilite le développement et permet de garder un historique complet de toutes les modifications au code.

Mon système est très simple, et fonctionne actuellement aussi bien sur OS X que sur Linux. Je dois d'ailleurs maintenir cette compatibilité entre les deux plateformes. En ce moment, j'intérroge readdir périodiquement et je compare les données avec un cache bâti à même mon application afin de détecter les altérations. Ce n'est pas très efficace, et la latence entre la modification du fichier et la détection de son altération est trop élevée.

J'aimerais utiliser un système plus efficace qui me permettrait de détecter les changements instantanément. Sous linux, il existe SGI FAM (File Alteration Monitor) qui me semble être l'outil parfait. Je n'ai malheureusement trouvé aucune solution compatible avec OS X et Linux. Je crois qu'il existe un système nommé kqueue sous OS X et les autres BSD, mais cette solution n'est pas compatible Linux.

Alors, j'aimerais bien savoir si OS X offre un système que je peux utiliser. Mes exigences sont la compatibilité avec Python et la possibilité d'avoir une application qui fonctionne aussi sous Linux. Si c'est nécéssaire, je peux créer une classe d'encapsulation en python qui me permettra d'utiliser un système de surveillance différant selon la platforme.

Si quelqu'un est intéressé, j'offre mon outil gratuitement sous la license GPL 2. En ce moment, il est très simple et primitif, et n'est pas emballé pour la distribution, mais je vais créer un accès public au SVN du code source si il y a une demande.

Merci de votre aide et de vos suggestions.


----------



## kenobee (30 Janvier 2007)

C'est une recherche google qui m'amène sur votre post de 2005 concerant 
*File Alteration Monitor (FAM)*


Je cherche la même chose mais pour une application différente

Avez vous trouvé votre bonheur?
Merci de votre réponse


----------



## Tarul (30 Janvier 2007)

kenobee a dit:


> C'est une recherche google qui m'am&#232;ne sur votre post de 2005 concerant
> *File Alteration Monitor (FAM)*
> 
> 
> ...


Bonsoir,
tu cherches aussi &#224; d&#233;tecter les modifications d'un r&#233;pertoire et que ce soit compatible avec plusieurs OS?


----------



## cpio77 (31 Janvier 2007)

Et en se basant sur l'inode des fichiers ?? (y a des inodes sur linux & osx)

Tu te fais un script qui "liste" les inodes des fichiers dans ton r&#233;pertoire toute les minutes, si y un delta entre deux check c'est qu'un fichier a &#233;t&#233; chang&#233;

tu peux egalement te baser sur la date/heure de modif de l'inode du fichier ou la date de modif du fichier


----------



## kenobee (9 Février 2007)

Tarul a dit:


> Bonsoir,
> tu cherches aussi à détecter les modifications d'un répertoire et que ce soit compatible avec plusieurs OS?



Je reviens sur le forum pour réitérer ma demande. En effet, je cherche une solution existante ou un dev avec un développeur capable de nous aider (rémunérer) à faire un outil qui serait capable de gérer certain événement sous macOSX.

Dans l'idéal sous windows j'ai trouvé http://www.watchdirectory.net/ qui absolument super et efficace et je veux un aquivalent sous macOSX!

Mon problème est de savoir de manière événementiel (instantané) si un fichier est ajouté, dans un dossier (recurssif), déplacé (il me faut l'ancien path et le nouveau ainsi que la date de modif) renommer (ancien nom, nouveau nom), effacer, et contenu modifier...

Je veux pouvoir mettre à jour une base de donnée MySQL tenant compte de chaque événement !!!

Est ce possible avec les commandes dispo dans mac OSX ? FSevents ?
AppleScript / automator / actions de dossiers ???
A voir
http://hobu.biz/index_html/kqueue-event-notification-for-mac-os-x
http://www.macosxhints.com/article.php?story=20060817044149264
Je ne suis pas développeur et je sais pas par quelle bout commencer
il faut un outil robuste et fiable pour gérer des centaines de Go (tera?) de données

Merci de votre aide 
sinon indiquez moi un bon développeur ?

Didier


----------



## tatouille (10 Février 2007)

diary.html?start=27


----------



## kenobee (21 Février 2007)

tatouille a dit:


> diary.html?start=27



Qu'est ce que ça veut dire ? je suis allé sur ce lien mais je n'ai pas plus d'infos pouvez vous me guider SVP.

Merci


----------



## tatouille (23 Février 2007)

kenobee a dit:


> Qu'est ce que &#231;a veut dire ? je suis all&#233; sur ce lien mais je n'ai pas plus d'infos pouvez vous me guider SVP.
> 
> Merci



example : kqueue/kevent fs alteration

-> FAM

diary.html?start=39


----------

