Come ottenere un elenco di file aperti per uno script in Linux?


3

Diciamo, vorrei capire cosa fa l' installazione di pip , come quali file vengono scaricati, dove vengono estratti, dove sono i file temporanei, ...

Esiste un modo suggerito per tenere traccia dei file aperti tramite script in Linux?

Risposte:


2

Penso che tu stia cercando Inotify . Tiene traccia delle modifiche a file e directory in un determinato percorso. E ci sono molte opzioni per farlo funzionare come desideri. Inoltre, questo non dipende dal processo, quindi si ottengono le modifiche apportate da qualsiasi processo o script.

Puoi anche dare un'occhiata a fschange , che usa inotify come backend.

E se vuoi uno strumento GUI, dai un'occhiata a DaemonFS .


Usando inotify, c'è un modo per determinare quali file sono stati modificati da quali programmi?
Anderson Green,

0

È possibile utilizzare il comando "lsof" per ottenere un elenco di file aperti, per un processo con un particolare pid. Ecco un'introduzione utile: http://www.akadia.com/services/lsof_intro.html

Per ottenere l'ID processo del comando, potresti fare qualcosa come ps ax | grep pip. Quindi passalo a lsof in questo modo: lsof -p theprocessid


Quindi, la mia prossima domanda è come ottenere quel processo id al più presto perché lo script è in esecuzione così velocemente. Inoltre, poiché si tratta di uno script, l'accesso ai file viene eseguito da altri programmi / script invece!
Drake Guan,

1
In tal caso, un approccio migliore potrebbe essere quello di utilizzare lo strace, combinato con l'opzione -f per "seguire" i processi figlio. Otterrai molto più output però :) Puoi semplicemente eseguirlo come strace -f pip install. O cosa ha detto Bibhas :)
Penny Leach il
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.