Dies ist eine Antwort, die ich auf eine vorherige Frage geschrieben habe:
Wenn Sie wissen möchten, was ein Prozess / Benutzer / eine Datei tut, ohne lsof rund um die Uhr ausführen zu müssen, verwenden Sie im Allgemeinen auditctl.
Angenommen, Sie haben ein aktuelles Kernel-Audit-Steuerelement, sollte eine einfache Operation sein. (Dies ist in Debian-fu, wenn Sie Red Hat Translate entsprechend ausführen)
# apt-get install auditd
Stellen Sie sicher, dass es ausgeführt wird (/etc/init.d/auditd Status).
auditctl -a entry,always -F arch=b64 -S open -F pid=<process id>
Ersetzen Sie b64 durch b32, wenn Sie einen 32-Bit-Bogen ausführen. Open kann durch einen beliebigen Systemaufruf oder das Wort "all" ersetzt werden.
Weitere Informationen finden Sie in der Manpage auditctl.
Sie können diese Methode verwenden und sie bitten, auf den Systemaufruf "Verknüpfung aufheben" zu achten.
Der Parameter -w ist nützlich, um Dateien / Verzeichnisse zu überwachen. Wie in der Manpage erläutert, gibt es jedoch einige Einschränkungen.
-w Pfad Fügen Sie am Pfad eine Überwachung für das Dateisystemobjekt ein. Sie können keine Uhr in das Verzeichnis der obersten Ebene einfügen. Dies ist vom Kernel verboten. Platzhalter werden ebenfalls nicht unterstützt und generieren eine Warnung. Die Art und Weise, wie Uhren funktionieren, besteht darin, den Inode intern zu verfolgen. Dies bedeutet, dass Sie, wenn Sie ein Verzeichnis überwachen, sehen, was als Dateiereignisse erscheint, aber es ist wirklich nur die Aktualisierung von Metadaten. Auf diese Weise könnten Sie einige Ereignisse verpassen. Wenn Sie alle Dateien in einem Verzeichnis überwachen müssen, wird empfohlen, für jede Datei eine eigene Überwachung durchzuführen. Im Gegensatz zu Syscall-Überwachungsregeln wirken sich Uhren nicht auf die Leistung aus, die auf der Anzahl der an den Kernel gesendeten Regeln basiert.