112 votes

Comment surveiller un arbre complet de répertoires pour des modifications sous Linux ?

Comment puis-je surveiller un arbre de répertoires entier pour des changements sous Linux (système de fichiers ext3)?

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

Il s'agit principalement de petits fichiers (< 1ko, quelques-uns jusqu'à 100ko). C'est une sorte de file d'attente et j'ai besoin de savoir quand des fichiers sont créés, supprimés ou quand leur contenu est modifié dans un délai de 5 à 10 secondes après que cela se produise.

Je sais qu'il existe inotify et d'autres outils, mais autant que je sache ils ne surveillent qu'un seul répertoire, ce qui signifierait que j'aurais besoin de 3 000 poignées inotify dans mon cas - plus que les 1024 poignées habituellement autorisées pour un seul processus. Ou me trompé-je?

Si le système Linux ne peut pas me donner ce dont j'ai besoin : peut-être qu'il existe un projet FUSE qui simule un système de fichiers (réplicant tous les accès aux fichiers sur un vrai système de fichiers) et enregistre séparément toutes les modifications (je n'ai pas pu en trouver un)?

-3voto

user5480949 Points 221

J'utilise ceci pour obtenir un aperçu rapide dans le répertoire actuel :

watch 'find . -printf "%T@ %Tc %p\n" | sort -nr | head '

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X