Incrontab eseményfigyelő

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.