Az Incron egy esemény figyelő rendszer, amely egy daemonból (incrond) és egy kezelőprogramból áll. Használata hasonló, mint a hagyományos cron rendszeré, annyi különbséggel, hogy az Incron nem az időzítési ciklusokban, hanem a fájlrendszerben bekövetkezett események (írás, olvasás, hozzáférés, stb) hatására indítja el a megadott programokat, szkripteket. Valamint annyiban tér még el a cron-tól, hogy az Incron esetében a szabályok nem közvetlenül egy crontab fájl szerkesztésével állíthatók be, hanem az erre a célra készített incrontab kezelőprogram segítségével. Miután elhelyezésre került az Incron táblájában a megfelelő eseményfigyelő sor a háttérben működő incrond daemon figyeli a megadott fájlt vagy könyvtárat, majd a bekövetkezett változáskor lefuttatja a beállított parancsot.
Telepítés
Telepítése roppant egyszerű. Debian alapú disztribúciókon az alábbi paranccsal telepíthető root-ként:
apt-get install incron
És a sikeres kimenet:
Csomaglisták olvasása... Kész Függőségi fa építése Állapotinformációk olvasása... Kész Az alábbi ÚJ csomagok lesznek telepítve: incron 0 frissített, 1 újonnan telepített, 0 eltávolítandó és 101 nem frissített. Letöltendő adatmennyiség: 68,8 kB. A művelet után 321 kB lemezterület kerül felhasználásra. Letöltés:1 http://ftp.hu.debian.org/debian/ jessie/main incron amd64 0.5.10-2 [68,8 kB] Letöltve 68,8 kB 0mp alatt (874 kB/s) A korábban ki nem választott incron csomag kiválasztása. (Adatbázis olvasása ... 66120 fájl és könyvtár van jelenleg telepítve.) Kibontás előkészítése: .../incron_0.5.10-2_amd64.deb ... Kibontás: incron (0.5.10-2) ... Aktiválók feldolgozása: systemd (215-17+deb8u7) ... Aktiválók feldolgozása: man-db (2.7.0.2-5) ... Beállítás: incron (0.5.10-2) ... Adding group `incron' (GID 126) ... Kész. Aktiválók feldolgozása: systemd (215-17+deb8u7) ...
Használatba vétel
Telepítés után még nem lehet egyből az incrontab programot használni, mert nincs engedélyezve még a root-nak sem. Feladatok kilistázása:
incrontab -l
Elsőre ezt a hibát dobja:
user 'root' is not allowed to use incron
Először tehát fel kell venni a felhasználókat az engedélyezettek listájára:
nano /etc/incron.allow
És adjuk hozzá a root felhasználót, vagy akinek engedélyezzük a használatát:
root
Ezután ha újra futtatjuk a listázós parancsot, akkor már más kimenetet kapunk:
incrontab -l
no table for root
Tehát még nincs Incron feladata a root-nak.
Incron feladat létrehozása
Új Incron feladatokat az alábbi paranccsal hozhatunk létre:
incrontab -e
Ekkor megnyílik az alapértelmezett szerkesztő, ahol egy átmeneti fájlban szerkeszthetőek a feladatok.
A feladatsorok formátuma a következő:
<útvonal> <maszk> <parancs>
- Útvonal: Az útvonal lehet egy konkrét fájl vagy egy könyvtár. Itt megjegyzendő, hogy az Incron nem működik rekurzívan, tehát a beállított könyvtárban csak a közvetlenül alatta lévő fájlokat és könyvtárakat figyeli. Az alkönyvtárakban lévő további fájlokat már nem figyeli. Azokhoz további Incron feladatok létrehozása szükséges.
- Maszk: A maszk egy azonosító, amivel azonosítani tudjuk a bekövetkezett eseményeket.
- Parancs: Itt pedig meg kell adni az esemény bekövetkeztekor lefuttatni kívánt parancsot.
Maszkok
Az Incron a következő maszkokat használja, azaz ezeket az eseményeket ismeri fel a fájlrendszer változásai során:
- IN_ACCESS: A megfigyelt fájlt megnyitották
- IN_ATTRIB: Metaadatok változása történt (jogosultságok, időbélyegek, egyéb attribútumok változása, stb)
- IN_CLOSE_WRITE: Egy írásra megnyitott fájlt bezártak
- IN_CLOSE_NOWRITE: Egy nem írásra megnyitott fájlt bezártak
- IN_CREATE: Egy fájlt vagy alkönyvtárat létrehoztak egy figyelt könyvtárban
- IN_DELETE: Egy fájlt vagy alkönyvtárat töröltek egy figyelt könyvtárban
- IN_DELETE_SELF: Egy figyelt fájlt vagy könyvtárat töröltek
- IN_MODIFY: Egy fájlt módosítottak egy figyelt könyvtárban
- IN_MOVE_SELF: Egy figyelt fájlt vagy könyvtárat áthelyeztek
- IN_MOVED_FROM: Egy fájlt kihelyeztek a megfigyelt könyvtárból
- IN_MOVED_TO: Egy új fájlt helyeztek a figyelt könyvtárba
- IN_OPEN: Egy fájlt megnyitottak a figyelt könyvtárban
Példa: Ha például egy Incron feladat figyeli a /tmp könyvtárat, aminek a változásakor a lefuttatott program módosítást végez ugyanebben a könyvtárban (írás, olvasás, törlés, létrehozás, stb), akkor a feladat egy végtelen ciklusba kerül, mivel a módosítás újabb programhívásra készteti az Incron-t. Ez pedig nagy terhelést okoz a rendszernek.
- HowtoForge: How to run commands on File or Directory changes with Incron on Ubuntu 16.04
- Archlinux Wiki: Incron
- Inotify
- SourceForge
Kapcsolódó tartalom:
- 133 megtekintés