Surveiller en continu les fichiers ouverts / accessibles par un processus


25

lsof -p 12345 listera tous les fichiers ouverts par un processus dont le pid est 12345 mais seulement pour un instant particulier.

Comment pouvons-nous surveiller en permanence un processus du début à la fin (jusqu'à la fin du processus) pour répertorier / afficher chaque fichier auquel le processus accède pendant toute sa durée de vie?


Réponses:


31

Essayez avec strace -p 12345; il devrait faire ce que vous essayez de réaliser.

La sortie peut être filtrée pour afficher uniquement les fichiers ouverts ( commentaire de Dan D. ):

strace -e open -p 12345

Remarque: vous pouvez également suivre rapidement les processus en cours d'exécution avec strace -e open <command>.


la sortie n'est pas conviviale et trop de choses supplémentaires.
— MA1

Vous pouvez résoudre ce problème en canalisant - strace -p {pid} | grep -i "Open" | tee files_opened.log. La clé est grep, qui vous permet de filtrer la sortie pour l'appel système que vous souhaitez (par exemple open()).

11
@Ninefingers En fait, stracepeut faire mieux grepqu'avec l' -eoption:strace -e open
— Dan D.

@DanD oh ouais, ofc :)

Lorsque je tue la commande strace, elle tue également la chose qu'elle trace. Pourquoi cela se produit-il (cygwin)?
— CMCDragonkai

6

Le nouvel utilitaire fatrace fera cela: https://launchpad.net/fatrace/

sudo fatrace | grep '(6514)'

N'utilisez pas l'option -p, cela signifie l'opposé de ce que cela signifie dans lsof ou d'autres utilitaires.


3

Cela exécutera en boucle la réexécution de votre commande et l'effacement de l'écran à chaque fois:

watch "lsof -p 12345"

AVERTISSEMENT: cela manquera les accès rapides aux fichiers et ne convient que pour voir les fichiers de longue date


2
C'est un peu maladroit par rapport à l'autre réponse en utilisant strace.
— David Foerster

1
C'est une solution inexacte - un processus peut utiliser des fichiers entre les exécutions delsof
— Dor

@Dor vous pouvez régler le timing de lsof sur moins de 1 seconde et augmenter sa précision. Bien qu'il soit maladroit par rapport aux autres, vous avez tort en ce qu'il s'agit d'une solution inexacte.
— Jordon Bedwell

Si vous regardez une longue opération de fichier (comme une sauvegarde de base de données), cela peut être une bonne alternative simple.
— jcalfee314
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.