Équivalent de SysInternals FileMon pour Linux?


Réponses:


7

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


2
Si je comprends bien, l'exécution de filemon permet à l'utilisateur de voir tous les accès aux fichiers. strace d'autre part, vous oblige à spécifier quelle application ouvrir en premier. Cela nécessite que vous connaissiez au préalable l'application qui accède à ces fichiers. Que faire si vous ne savez pas quelle application accède aux fichiers que vous souhaitez consulter?
chuacw

8

Cela dépend de ce que vous voulez:

  • Dans le grand, vous voulez regarder inotify pour voir tous les accès aux fichiers que n'importe quel processus fait.

  • Dans le petit, strace vous permettra de regarder les appels système d'un processus particulier. Strace est assez génial. Vous pouvez tracer les appels d'un processus à «ouvrir» en faisant strace -f -eopen $cmd, par exemple. La page de manuel contient bien sûr tous les détails sur la syntaxe.


Merci pjz. Pour être très précis, j'ai du mal à démarrer avec Ogre3d sur Ubuntu. Mon application de test semble rechercher des fichiers .cfg au démarrage. Je souhaite écouter toutes les tentatives d'ouverture de fichiers afin de garantir que les fichiers corrects sont disponibles et disposent des autorisations appropriées.
chickeninabiscuit

strace -e open ./app
Justin

2

stracedevant une application de départ est bon de regarder ce que fait l'application.
lsofest agréable de voir quels fichiers une application déjà en cours d'utilisation utilise.

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



1

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

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

-fgarantit que les événements des processus enfants sont capturés.
-e trace=filedit que nous devrions saisir syscalls liées aux fichiers (par exemple stat, open, futexetc.)
-pest l'identifiant du processus (récupéré à partir ps -auxou tout autre moyen) a -oprécisé le outputfile (il peut y avoir beaucoup de données et vous pourriez plutôt utiliser grep comme un filtre.




0

C'est vieux, mais je pense que c'est une bonne idée de le mettre à jour pour la réalité d'aujourd'hui.

Pour déboguer un seul processus et leurs enfants, strace est toujours le meilleur moyen. Il peut afficher facilement tous les accès aux fichiers, même sur les fichiers manquants.

Pour le débogage système générique, la fonction d'audit dans le noyau peut le faire et est la méthode recommandée. Il n'a pas besoin de correctif sur les noyaux récents, juste l'audit packagé installé

voici un simple gui pour l'utiliser:

audit-gui

Cela réplique le filemon windows, surveillant l'accès au fichier pour tous les endroits, processus, etc.

vérifiez aussi ce post


0

C'est ce qui a bien fonctionné pour moi (Linux Mint 19.1):

sudo lsof 2>&1 | grep programnamehere

Je ne sais pas pourquoi 2>&1était nécessaire, mais il n'a pas filtré sauf si je l'ai utilisé.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.