14 votes

Équivalent de SysInternals FileMon pour Linux?

Je tente de déboguer une application sur Ubuntu - j'ai besoin d'écouter les tentatives d'ouverture de fichiers (même pour les fichiers qui n'existent pas).

Process Monitor (anciennement connu sous le nom de FileMon) est disponible sur Windows - qu'y a-t-il dans la boîte à outils d'Ubuntu?

Merci!

Ashley

9voto

mreggen Points 2940

Cela dépend de ce que vous voulez:

  • En général, vous voudrez regarder inotify pour voir tous les accès aux fichiers faits par n'importe quel processus.

  • Pour des choses plus spécifiques, strace vous permet de surveiller les appels système qu'un processus particulier effectue. Strace est vraiment génial. Vous pouvez tracer les appels d'un processus à 'open' en faisant strace -f -eopen $cmd, par exemple. La page de manuel contient tous les détails sur la syntaxe, bien sûr.

0 votes

Merci pjz. Pour être très précis - j'ai du mal à commencer avec Ogre3d sur Ubuntu. Mon application de test semble chercher des fichiers .cfg au démarrage. Je veux écouter toutes les tentatives d'ouverture de fichiers pour m'assurer que les fichiers corrects sont disponibles et ont les autorisations adéquates.

0 votes

Please translate this keeping the same HTML tags if they exist from en to fr : strace -e open ./app

7voto

Evan Anderson Points 140581

Vous recherchez strace. Jetez un œil ici : https://wiki.ubuntu.com/Strace

2 votes

Selon mon interprétation, l'exécution de filemon permet à l'utilisateur de voir tous les accès aux fichiers. En revanche, strace vous oblige à spécifier d'abord quelle application ouvrir. Cela nécessite de savoir à l'avance quelle application accède à ces fichiers. Que se passe-t-il si vous ne savez pas quelle application accède à ces fichiers que vous souhaitez examiner ?

2voto

user10103 Points 31

SGI a un outil que vous voudrez peut-être essayer: http://oss.sgi.com/projects/fam/

2 votes

Sous Linux fam est de l'histoire. Vraiment utiliser inotify de nos jours

1voto

ThorstenS Points 3044

strace devant une application en démarrage est bon pour voir ce que l'application fait.
lsof est utile pour voir quels fichiers une application déjà en cours d'exécution utilise.

À propos :
lsof -ni:22 montre quel processus utilise le port 22.

1voto

Noldorin Points 67794

Voici un exemple d'utilisation de strace pour suivre les modifications de fichiers :

strace -f -e trace=file -p7546 -o /tmp/outputfile

-f assure que les événements des processus enfants sont capturés.
-e trace=file indique que nous devons capturer les appels système liés aux fichiers (par exemple, stat, open, futex etc.)
-p est l'ID du processus (obtenu à partir de ps -aux ou d'autres moyens)
-o spécifie le fichier de sortie (il peut y avoir beaucoup de données et vous pourriez préférer utiliser grep comme filtre).

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X