
EntsprechendWikipedia,
inotify ist ein Linux-Kernel-Subsystem, das Änderungen am Dateisystem erkennt. Es ersetzt das bisherige dnotify.
Programme, die Dateien synchronisieren (wie Crashplan, Dropbox, Git), empfehlen in Benutzerhandbüchern, dass der Benutzer den Wert erhöht max_user_watches
(1,2,3).
So wie ich inotify verstehe, wird dem Betriebssystem „mitgeteilt“, dass eine Datei geändert wurde, anstatt dass das Betriebssystem selbst nach Änderungen „suchen“ muss.
Ich gehe davon aus, dass in jedem Verzeichnis eine „inotify“-Datei erstellt wird. Ist das richtig? Gibt es eine Möglichkeit, über die Befehlszeile mit inotify zu interagieren?
Ressourcen
Warum sind Inotify-Ereignisse bei einer NFS-Einbindung anders?
Inotifywait für eine große Anzahl von Dateien in einem Verzeichnis
Antwort1
Inotify ist eine interne Kernel-Funktion. Es gibt keine „inotify-Datei“. Es gibt dedizierte Systemaufrufeinotify_init
,inotify_add_watch
Undinotify_rm_watch
die es Prozessen ermöglichen, sich selbst zu registrieren, um benachrichtigt zu werden, wenn bestimmte Dateisystemereignisse eintreten. Wenn das Ereignis eintritt, erhält der Prozess eine Beschreibung des Ereignisses über den von zurückgegebenen Dateideskriptor inotify_init
.
Dem Betriebssystem wird nicht „gesagt“, dass eine Datei geändert wurde: Es weiß es, weil es die Änderung vornimmt. Die Anwendung erfährt, dass eine Datei geändert wurde, statt dass sie danach suchen muss.
Das Programminotifywait
bietet eine einfache Möglichkeit, inotify von der Befehlszeile aus zu verwenden.