inotify

Mattepuffo's logo
Monitorare il sistema con Inotify e Incron

Monitorare il sistema con Inotify e Incron

Inotify è un ottimo sistema di notifica, presente dalla versione del Kernel 2.6.13 e sempre più usato nelle varie distro.

Grazie a questo "nuovo" sistema è possibile accorgersi di eventuali modifiche e danni in tempo quasi reale, rispetto invece ai più vecchi sistemi tipo dnotify.

Se poi lo controlliamo con inron il sistema diventa quasi perfetto.

Incron è un programma che prende molto da cron, anche se in verità incron non ha nulla a che vedere con lo scheduling.

Cron infatti svolge azioni periodiche, mentre incron rimane in ascolto e cattura gli eventi di inotify.

Per prima cosa installiamo incron.

Dovrebbe essere presente su tutte le distro; su Archlinux:

# pacman -Sy incron

La tabelle di inrcond sono divise in tre colonne:

  • la prima indica il PATH da controllare
  • la seconda l'evento da rilevare
  • la terza il comando da eseguire quando si scatena l'evento

Per quanto riguarda l'evento da rilevare abbiamo a disposizione un'ampia scelta:

IN_ACCESS -> il file è stato letto

IN_ATTRIB -> cambiamento attributi

IN_CLOSE_WRITE -> file aperto in modifca e poi chiuso

IN_CLOSE_NOWRITE -> file chiuso senza modifiche

IN_CREATE -> file/directory create

IN_DELETE -> file/directory cancellate

IN_DELETE_SELF -> file/directory osservata è stata cancellata

IN_MODIFY -> file modificato

IN_MOVE_SELF -> file/directory spostata o rinominata

IN_MOVED_FROM -> file/directory spostata dalla directory controllata

IN_MOVED_TO -> file/directory spostata nella directory controllata

IN_OPEN -> file aperto

IN_ALL_EVENTS -> qualsiasi evento

Insomma ce ne è per tutti i gusti.

Per controllare gli eventi possiamo usare incrontab (simile a crontab).

Per vedere gli eventi per l'utente corrente:

# incrontab -l
/srv/http IN_CREATE,IN_DELETE logger "ATTENZIONE"

Io ho un solo evento impostato per root.