Monitora continuamente i file aperti / accessibili tramite un processo


25

lsof -p 12345 elencherà tutti i file aperti dal processo il cui pid è 12345 ma solo per un determinato istante di tempo.

Come possiamo monitorare continuamente un processo dall'inizio alla fine (fino al termine del processo) per elencare / mostrare ogni singolo file a cui accede il processo durante la sua intera vita?


Risposte:


31

Prova con strace -p 12345; dovrebbe fare quello che stai cercando di ottenere.

L'output può essere filtrato per visualizzare solo i file aperti ( commento di Dan D. ):

strace -e open -p 12345

Nota: è anche possibile tracciare rapidamente i processi in esecuzione con strace -e open <command>.


l'output non è amichevole e troppe cose extra.
— MA1

È possibile risolvere il problema eseguendo il piping - strace -p {pid} | grep -i "Open" | tee files_opened.log. Il tasto è grep, che consente di filtrare l'output per la chiamata di sistema desiderata (ad es open().).

11
@Ninefingers In realtà stracepuò farlo meglio che grepcon l' -eopzione:strace -e open
— Dan D.

@DanD oh yeah, ofc :)

Quando uccido il comando strace, uccide anche la cosa che sta tracciando. Perché sta succedendo (Cygwin)?
— CMCDragonkai,

6

La nuova utility fatrace farà questo: https://launchpad.net/fatrace/

sudo fatrace | grep '(6514)'

Non usare l'opzione -p, significa l'opposto di ciò che significa in lsof o altre utilità.


3

Questo eseguirà il ciclo eseguendo nuovamente il comando e cancellando lo schermo ogni volta:

watch "lsof -p 12345"

ATTENZIONE: questo perderà l'accesso rapido ai file ed è adatto solo per vedere file di vecchia data


2
Questo è un po 'goffo rispetto all'altra risposta che utilizza strace.
— David Foerster,

1
Questa è una soluzione imprecisa - un processo può utilizzare i file tra le esecuzioni dilsof
— Dor

@Puoi impostare il tempo di lsof su 1 secondo e aumentarne la precisione. Mentre è goffo rispetto ad altri, ti sbagli in quanto è una soluzione imprecisa.
— Jordon Bedwell,

Se stai guardando un'operazione di file lunga (come un backup del database), questa potrebbe essere una buona alternativa semplice.
— jcalfee314,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.