Értesítés

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt hozzászólók, és jelentősen eltérhet a 2015. február 28-án felülvizsgált verziótól ; az ellenőrzések 6 szerkesztést igényelnek .

Az Inotify a Linux kernel  egy alrendszere , amely lehetővé teszi, hogy értesítéseket kapjon a fájlrendszer fájljaival és könyvtáraival kapcsolatos eseményekről. Például fájlok és könyvtárak megnyitása olvasásra vagy írásra, attribútumok megváltoztatása , áthelyezés, törlés stb. A 2.6.13 óta benne van a fő kernelben, de a korábbi kernelekkel is használható patch overlay segítségével. A 2.6.32 óta az Inotify-t az Fsnotify váltotta fel, az Inotify pedig az Fsnotify-on alapul, de a gyakorlati alkalmazások szempontjából ez a részlet lényegtelen maradt [1] .

Ha feliratkozik az Inotify eseményekre, a szkripteknek nem kell időszakonként átvizsgálniuk a fájlrendszert módosításokért. Ezenkívül az esemény-előfizetés nem akadályozza meg a kötet leválasztását [1] .

A fő hatókör a helyi keresőmotorokban van (például , Beagle ), így az indexelő programnak nem kell rendszeresen átvizsgálnia a teljes fájlrendszert. Ezen kívül figyelheti a fontos konfigurációs fájlokat és visszaállíthatja azokat sérülés esetén, automatikus műveleteket hajthat végre a fájlok szerverre való feltöltése után stb. [1]

Segédprogramok

Bár az Inotify mechanizmus az operációs rendszer része, rendszerhívásokkal érhető el, és ezért nem igényel további könyvtárak telepítését, a parancssorhoz létrejött az inotify-tools csomag, amely lehetővé teszi az Inotify használatát szkriptekben. [1] [2] .

A két fő inotify-eszköz az inotifywatch és az inotifywait, például a következő parancs a /tmp [1] könyvtár használati statisztikáit gyűjti össze :

inotifywatch -r /tmp

A fájlok vagy könyvtárak valós idejű figyeléséhez használhatja az inotifywait [1] parancsot :

$ inotifywait -mr /tmp Órák beállítása. Vigyázat: mivel az -r-t megadták, ez eltarthat egy ideig! Órák létesültek. /tmp/ példa-tmp-fájl LÉTREHOZÁSA /tmp/ Példa-tmp-fájl NYITÁSA /tmp/ CLOSE_WRITE,CLOSE example-tmp-file

Példák az Inotifyt használó egyéb segédprogramokra : [1] :

Rendszerhívások

A függvényekkel való munkavégzéshez hozzá kell adni a sys/inotify.h fejlécfájlt .

int inotify_init()

Létrehoz egy fájlleírót, amelyből az összes előforduló esemény beolvasásra kerül.

int inotify_add_watch(int fd, const char * elérési út, __u32 maszk);

Létrehoz egy egyedi (fájlleírón belüli) figyelési leírót, amely az utak és események azonosítására szolgál. Ebben az esetben csak a maszkban megadott események engedélyezettek.

int inotify_rm_watch(int fd, __u32 wd);

Töröl egy meglévő megfigyelési fogantyút.

Események fogadása

Az események fogadása a hagyományos read rendszerhívással történik, amely egy inotify_event struktúrába olvas be a következő mezőkkel:

Azonosító Jelentése
wd megfigyelési leíró
maszk esemény maszk
aprósütemény időzítés IN_MOVED_FROM és IN_MOVED_TO között
len fájlnév hossza
név fájlnév ahhoz a könyvtárhoz képest, amelyhez a figyelési leírót létrehozták

Az eseménymaszk a következő állandók logikai VAGY értéke:

Események generálásakor a következő állandók is használhatók:

Jegyzetek

  1. 1 2 3 4 5 6 7 Vervloesem, 2011 .
  2. Az Inotify-tools archiválva 2014. június 1-én a Wayback Machine -nél egy C-könyvtár és parancssori programok készlete Linux számára, amely egyszerű felületet biztosít az értesítéshez

Irodalom

Linkek