2010-03-03 4 views
4

Comment suivre les modifications d'un répertoire spécifique sous UNIX? Par exemple, je lance un utilitaire qui crée des fichiers lors de son exécution. Je veux savoir quels fichiers ont été créés lors d'un lancement particulier. Existe-t-il un moyen simple d'obtenir de telles informations? Le problème est que:Détection des changements de répertoire dans unix

  1. Je ne peux pas le contenu du répertoire flush après l'exécution du script
  2. Les fichiers créés avec le nom qui a hachage comme une partie de composé. Il n'y a aucune possibilité d'obtenir ce hash du script pour la recherche ultérieure.
  3. Il peut y avoir plusieurs scripts exécutés simultanément, je ne veux pas voir les fichiers créés par un autre processus dans le même dossier.

S'il vous plaît notez que je ne veux pas savoir si le répertoire a été modifié comme indiqué here, j'ai besoin des noms de fichiers qui pourrait idéalement être pour correspondre modèle rassemblés de spécifique.

Répondre

0

Vous pouvez utiliser la commande de script pour suivre les commandes lancées.

3

Vous devez utiliser quelque chose comme FAM, gamin, ou inotify pour détecter lorsqu'un fichier a été créé, fermé, etc.

3

Vous pouvez utiliser strace -f myscript pour tracer tous les appels système effectués par le script, et utiliser grep pour filtrer les appels système qui créent de nouveaux fichiers.

+1

Vous pouvez demander à 'strace' de filtrer les syscalls qu'il affiche lui-même, en utilisant' -e trace = file' (qui affiche tous les syscalls utilisant un nom de fichier). – caf

Questions connexes