J'ai essayé ça tracefile
. Pour moi, ça a donné beaucoup moins de matches que le mien strace ... | sed ... | sort -u
. J'ai même ajouté -s256
à la strace(1)
ligne de commande mais cela ne m'a pas beaucoup aidé ...
Puis j'ai essayé ça loggedfs
. Tout d'abord, il a échoué car je n'avais pas d'accès en lecture / écriture au répertoire dans lequel je tentais de me connecter. Après avoir fait chmod 755 temporairement, j'ai eu quelques hits ...
Mais, pour moi, ce qui suit semble mieux fonctionner:
inotifywait -m -r -e OPEN /path/to/traced/directory
Et ensuite post-traiter la sortie après avoir exécuté le processus d’intérêt.
Cela n'intercepte pas l'accès externe aux processus de fichiers du
répertoire suivi ni le fait qu'un autre processus ait accédé à la même arborescence de répertoires, mais dans de nombreux cas, cet outil est suffisamment bon pour que le travail soit effectué.
EDIT: inotifywait n'intercepte pas l'accès aux liens symboliques (uniquement les cibles après la résolution des liens symboliques). J'ai été frappé par cela lorsque j'ai archivé des bibliothèques auxquelles un programme a accédé pour une utilisation future. A utilisé un peu plus de perl glob hackery pour choisir les liens symboliques le long des bibliothèques notifiées afin d’effectuer le travail dans ce cas particulier
EDIT2: au moins quand inotifying fichiers et liens symboliques eux - mêmes de la ligne de commande inotifywait (par exemple , inotifywait -m file symlink
ou inotifywait symlink file
) sortie montrera l' accès auquel on est en première ligne de commande (quel que soit ce qui, file
d' symlink
est accessible). inotifywait ne supporte pas IN_DONT_FOLLOW - auquel, lorsque j'ai essayé par programmation, on ne fait que voir l'accès file
(ce qui peut être ou ne pas être ce que l'on attend ...) quel que soit l'ordre dans la ligne de commande
strace
, je suppose que vous êtes particulièrement intéressé par Linux. Correct?