Ich weiß, dass dies eine alte Frage ist, aber ich werde einen anderen Ansatz vorschlagen, nur für den Fall, dass jemand es nützlich findet. Ich habe dies ursprünglich als Antwort auf eine Frage gepostet, die auf diese Frage gestellt wurde.
Eine Option ist die Verwendung sysdig
einer Open-Source-Systemüberwachungsanwendung. Mit dieser Funktion können Sie die Aktivität einer Datei nach Namen überwachen. Angenommen, Sie möchten sehen, bei welchem Prozess eine Datei mit dem Namen erstellt wurde /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
An dieser Ausgabe können Sie erkennen, dass ein touch
mit pid 5470 benannter Prozess die Datei geöffnet hat.
Wenn Sie weitere Informationen wünschen, können Sie im "Erfassungsmodus" ausführen, in dem eine Systemaufruf-Ablaufverfolgung gesammelt wird:
# sysdig -w /tmp/dumpfile.scap
Warten Sie, bis die Datei erstellt wurde. Halten Sie dann an sysdig
und führen Sie Folgendes aus:
# csysdig -r /tmp/dumpfile.scap
So können Sie alles erkunden, was passiert ist. Sie können drücken <F2>
und auswählen Files
. Drücken Sie <F4>
, um nach dem Dateinamen zu suchen. Drücken Sie dann, um <F6>
zu "graben" (was eine Ausgabe ähnlich dem obigen Befehl anzeigt). Auf diese Weise können Sie auf dieselbe Weise nach Informationen über den Prozess suchen, der die Datei tatsächlich erstellt hat.
Es gibt eine GUI-Version von csysdig
Called sysdig-inspect
, wenn das mehr Ihre Tasse Tee ist.