J'essaie 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 FileMon ) est disponible sur Windows - qu'y a-t-il dans la ceinture utilitaire d'Ubuntu?
Merci!
Ashley
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.la source
strace
devant une application de départ est bon de regarder ce que fait l'application.lsof
est 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.la source
SGI dispose d'un outil que vous voudrez peut-être essayer: http://oss.sgi.com/projects/fam/
la source
Voici un exemple d'utilisation de strace pour suivre les modifications de fichiers:
strace -f -e trace=file -p7546 -o /tmp/outputfile
-f
garantit que les événements des processus enfants sont capturés.-e trace=file
dit que nous devrions saisir syscalls liées aux fichiers (par exemplestat
,open
,futex
etc.)-p
est l'identifiant du processus (récupéré à partirps -aux
ou tout autre moyen) a-o
précisé le outputfile (il peut y avoir beaucoup de données et vous pourriez plutôt utiliser grep comme un filtre.la source
Essayez sysdig . Par exemple:
la source
Cela demande l'aide de Mortadelo. http://gitorious.org/mortadelo
la source
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
la source
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é.la source