/ / Kann iNotify mir mitteilen, wohin eine überwachte Datei verschoben wird? - Linux, inotify

Kann ich mir sagen, wohin eine überwachte Datei verschoben wurde? - Linux, Inotifizieren

Ich möchte eine Datei überwachen, während sie sich im System bewegt. Kann mir iNotify bei jeder Bewegung die neue Position mitteilen?

Antworten:

4 für die Antwort № 1

Wenn Sie sowohl das Verzeichnis anzeigen, aus dem die Datei verschoben wurde, als auch das Verzeichnis, in das die Datei verschoben wurde, erhalten Sie eine IN_MOVED_FROM Ereignis im Quellverzeichnis und ein IN_MOVED_TO Ereignis im Zielverzeichnis, beide mit dem gleichen cookie. Sie können dann die verwenden name Felder der beiden Ereignisse, um herauszufinden, wohin die Datei verschoben wurde.

Wenn Sie nur das Quellverzeichnis oder nur das Zielverzeichnis betrachten, erhalten Sie nur eines der Ereignisse, sodass Sie nur die Hälfte der Informationen haben. Dies ist eine Einschränkung von inotify.


1 für die Antwort № 2

Sie können vor dem Verschieben einen Dateideskriptor in die Datei packen und den Symlink lesen:

"/proc/self/fd/" + $fd

Dabei ist $ fd Ihre Dateibeschreibung, diese DateiDer Deskriptor zeigt auf Ihre Datei. Hinweis: Ich habe dies nur auf ext4 getestet und funktioniert mit LVM2, aber nicht mit OverlayFS. Auch das Öffnen einer Dateideskription verhindert, dass entfernte Ereignisse für die Datei ausgelöst werden.

Es können auch Probleme zwischen Linux-Kernel-Versionen auftreten