Laut Wikipedia ,
Inotify ist ein Linux-Kernel-Subsystem, das Änderungen am Dateisystem bemerkt. Es ersetzte das vorherige dnotify.
Programme, die Dateien synchronisieren (z. B. Absturzplan, Dropbox, Git), werden in Benutzerhandbüchern empfohlen, die vom Benutzer erweitert werden max_user_watches
( 1 , 2 , 3 ).
Soweit ich von inotify verstehe, wird dem Betriebssystem "mitgeteilt", dass eine Datei geändert wurde, anstatt dass das Betriebssystem 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 unterscheiden sich inotify-Ereignisse auf einem NFS-Mount?
Inotifywait für eine große Anzahl von Dateien in einem Verzeichnis
grep --exclude=arch -r inotify
in den Linux-Kernel-Quellen laufen .Antworten:
Inotify ist eine interne Kernel-Einrichtung. Es gibt keine "inotify-Datei". Es gibt dedizierte Systemaufrufe
inotify_init
,inotify_add_watch
mitinotify_rm_watch
denen Prozesse, die sich selbst registrieren, benachrichtigt werden, wenn bestimmte Dateisystemereignisse auftreten. Wenn das Ereignis eintritt, erhält der Prozess eine Beschreibung des Ereignisses über den von zurückgegebenen Dateideskriptorinotify_init
.Dem Betriebssystem wird nicht "mitgeteilt", dass eine Datei geändert wurde: Es weiß, weil es die Änderung vornimmt. Es ist die Anwendung, die sagt, dass eine Datei geändert wurde, anstatt suchen zu müssen.
Das Programm
inotifywait
bietet eine einfache Möglichkeit, inotify über die Befehlszeile zu verwenden.quelle