Linux rendszerek esetén ütemezett feladatokat a cron segítségével tudunk végrehajtani. Mi van azonban akkor, ha egy állomány-, vagy könyvtár változásának hatására szeretnénk valamilyen utasítást-, vagy utasításokat futtatni. Erre kínál megoldást az Incrontab.
Incrontab telepítése
Adjuk ki az alábbi parancsot:
apt install incrontab
A telepítés után még nem tudjuk használatba venni a daemon-t mivel még egyetlen felhasználónak sincs jogosultsága hozzá. Jelen esetben engedélyezzük a root felhasználónak a hozzáférést:
echo "root" > /etc/incron.allow
A parancsok hasonlóak mint a crontab esetén. Például listázás:
incrontab -l
Feladatok végrehajtását a következő szintaxis szerint adhatunk meg:
<ú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
- 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
A bejegyzéseim között az ISPConfig 3 telepítésének ismertetése alkalmával használtam ezt a programot, mégpedig arra, hogy a Let’s Encrypt tanúsítványát hozzáadjam az adminisztrációs szolgáltatáshoz. Amikor a tanúsítvány megújítása megtörténik, lefuttatok egy scriptet, ami a Postfix, Dovecot, Apache, PureFTP szolgáltatásokhoz rendeli a megváltozott tanúsítványt, vagyis leginkább az FTP szerver miatt szükséges a script. Lássuk:
/etc/letsencrypt/archive/mx.zsoltina.com/ IN_CREATE,IN_MODIFY /bin/bash /etc/init.d/le_ispc_pem.sh
A példa önmagáért beszél, ezért különösebb ismertetést nem igényel.