comment surveiller un arborescence de répertoires complet pour les changements dans Linux?

Comment puis-je surveiller toute une arborescence de répertoires pour les changements de Linux ( ext3 système de fichiers)?

Actuellement, le répertoire contient environ un demi-million de fichiers à propos de 3 000 sous-répertoires, organisé en trois niveaux de répertoire.

il s'agit surtout de petits fichiers (< 1kb, quelques-uns jusqu'à 100 Ko). C'est une sorte de file d'attente et j'ai besoin de savoir quand les fichiers sont créés, supprimés ou leur contenu modifié dans les 5-10 secondes de ce qui se passe.

je sais qu'il est inotify et trie, mais AFAIK ils ne surveillent qu'un seul répertoire, ce qui signifie que j'aurais besoin de 3000 poignées inotify dans mon cas - plus que les poignées 1024 habituelles permises pour un seul processus. Ou je me trompe?

dans le cas où le système Linux ne peut pas me dire ce dont j'ai besoin: peut-être qu'il y a un FUSE projet simulant un système de fichiers (répliquant tous les accès aux fichiers sur un système de fichiers réel) et enregistre séparément toutes les modifications (ne pourrait-on pas en corriger une)?

32
demandé sur Udo G 2012-01-02 13:37:41

6 réponses

à ma connaissance, il n'y a pas d'autre moyen que de mettre un inotify surveillez chaque répertoire.

cela dit, vous ne manquerez pas de descripteurs de fichier car inotify ne pas réserver un fd pour regarder un fichier ou un répertoire (son prédécesseur,