So che questa è una vecchia domanda, ma suggerirò un altro approccio nel caso in cui qualcuno lo trovi utile. Originariamente ho pubblicato questo come una risposta a una domanda che è stata ingannata a questo.
Un'opzione è utilizzare sysdig
: un'applicazione di monitoraggio del sistema open source. Usandolo, puoi monitorare l'attività su un file per nome. Supponiamo che tu volessi vedere quale processo stava creando un file chiamato /tmp/example.txt
:
# sysdig fd.name=/tmp/example.txt
567335 16:18:39.654437223 0 touch (5470) < openat fd=3(<f>/tmp/example.txt) dirfd=-100(AT_FDCWD) name=/tmp/example.txt flags=70(O_NONBLOCK|O_CREAT|O_WRONLY) mode=0666
567336 16:18:39.654438248 0 touch (5470) > dup fd=3(<f>/tmp/example.txt)
567337 16:18:39.654438592 0 touch (5470) < dup res=0(<f>/tmp/example.txt)
567338 16:18:39.654439629 0 touch (5470) > close fd=3(<f>/tmp/example.txt)
567339 16:18:39.654439764 0 touch (5470) < close res=0
567342 16:18:39.654441958 0 touch (5470) > close fd=0(<f>/tmp/example.txt)
567343 16:18:39.654442111 0 touch (5470) < close res=0
Da quell'output, puoi vedere che un processo chiamato touch
con pid 5470 ha aperto il file.
Se si desidera ulteriori informazioni, è possibile eseguire in "modalità di acquisizione" in cui viene raccolta una traccia di chiamata di sistema:
# sysdig -w /tmp/dumpfile.scap
Quindi attendere la creazione del file, quindi arrestare sysdig
ed eseguire:
# csysdig -r /tmp/dumpfile.scap
Questo ti permetterà di esplorare tutto quello che è successo. È possibile premere <F2>
e selezionare Files
, premere <F4>
per cercare il nome file, quindi premere <F6>
per "scavare" (che mostrerà l'output simile al comando sopra). Con ciò, è quindi possibile utilizzare lo stesso approccio per trovare informazioni sul processo che ha effettivamente creato il file.
C'è una versione GUI di csysdig
chiamato sysdig-inspect
, se è più la tua tazza di tè.