GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie kann man feststellen, welcher Prozess eine Datei erstellt?

Für diese Frage gibt es hier bereits Antworten :Ist es möglich herauszufinden, welches Programm oder Skript eine bestimmte Datei erstellt hat?

(6 Antworten)
Vor 4 Jahren geschlossen.

Wie kann ich bei gegebenem Dateipfad feststellen, welcher Prozess ihn erstellt (und/oder darauf liest/schreibt)?

Akzeptierte Antwort:

Die lsof Befehl (bereits in mehreren Antworten erwähnt) sagt Ihnen, welcher Prozess eine Datei zum Zeitpunkt der Ausführung geöffnet hat. lsof ist für fast jede Unix-Variante verfügbar.

lsof /path/to/file

lsof wird Sie nicht über Dateien informieren, die vor zwei Mikrosekunden geöffnet und vor einer Mikrosekunde geschlossen wurden. Wenn Sie eine bestimmte Datei überwachen und auf Zugriffe reagieren müssen, benötigen Sie andere Tools.

Wenn Sie etwas vorausplanen können, können Sie die Datei auf einem LoggedFS ablegen Dateisystem. LoggedFS ist ein FUSE Stacked Filesystem, das alle Zugriffe auf Dateien in einer Hierarchie protokolliert. Die Protokollierungsparameter sind in hohem Maße konfigurierbar. FUSE ist auf allen großen Unices verfügbar. Sie sollten Zugriffe auf das Verzeichnis protokollieren, in dem die Datei erstellt wird. Beginnen Sie mit der bereitgestellten Beispielkonfigurationsdatei und optimieren Sie sie gemäß dieser Anleitung.

loggedfs -l /path/to/log_file -c /path/to/config.xml /path/to/directory
tail -f /path/to/log_file

Viele Unices bieten andere Überwachungseinrichtungen an. Unter Linux können Sie das relativ neue Audit-Subsystem verwenden. Es gibt nicht viel Literatur darüber (aber mehr als über logfs); Sie können mit diesem Tutorial oder einigen Beispielen oder einfach mit dem auditctl beginnen Manpage. Hier sollte es ausreichen, sicherzustellen, dass der Daemon gestartet ist, und dann auditctl auszuführen :

auditctl -w /path/to/file

(Ich denke, ältere Systeme brauchen auditctl -a exit,always -w /path/to/file ) und sehen Sie sich die Protokolle in /var/log/audit/audit.log an .


Linux
  1. Wie lösche ich eine Datei, deren Dateiname nicht druckbare Zeichen enthält?

  2. Wie identifiziere ich einen Prozess, der keine Pid hat?

  3. So leiten Sie die Ausgabe eines bereits laufenden Prozesses um

  4. Wie kann festgestellt werden, ob ein Prozess in lxc/Docker ausgeführt wird?

  5. Woher weiß ich, welcher Prozess Swap verwendet?

Linux-Dateibefehl:So bestimmen Sie den Dateityp in Linux

So bestimmen Sie den MIME-Typ einer Datei in Linux

Linux – Wie kann man feststellen, welches Modul den Kernel verschmutzt?

So verwenden Sie den Befehl lsof unter Linux

Wie kann ich feststellen, welcher laufende Prozess Java verwendet?

Wie kann man feststellen, ob eine Linux-Binärdatei 32-Bit oder 64-Bit ist?