SMsoft – informatica e dintorni

Linux: effettuare automaticamente operazioni su file e directory se vengono modificati

Immaginate di dover attivare una certa operazione solo se il contenuto di un file su server cambia. Il sistema CRON potrebbe non essere l’ideale, perché si dovrebbe attivare un check ogni minuto manualmente. In questi casi si può ricorrere ad INCRON, ovvero un sistema che consente di verificare la modifica di un file/directory (es modifica del file, modifica dei permessi, etc).

Installiamo INCRON:

Innanzitutto, se esiste il file /etc/incron.allow solo gli utenti elencati nello stesso, potranno usare il servizio.

Per verificare le eventuali entry di INCRON già create, basta digitare:

Per iniziare a creare una nuova entry, bisogna digitare:

Il formato del file è:

dove path indica il file/directory da monitorare, mask è il tipo di operazione da monitorare e command è il comando da eseguire.

Il parametro mask può essere uno dei seguenti:

L’evento contrassegnato con * può avvenire su un file della cartella ed in questi casi viene ritornato come parametro il solo nome del file e non l’itero path.

Inoltre questi parametri possono essere specificati nel campo mask:

Infine c’è anche IN_NO_LOOP che disabilita il monitoraggio finché un processo che sta gestendo il file non è terminato.

Il parametro è il comando che verrà eseguito quando l’evento mask si verifica. Si possono usare le seguendi wildcards:

Se si sta controllando una directory, $@ conterrà il path della directory e $# il file che ha scatenato l’evento. Se invece si sta controllando un file, $@ conterrà il path completo del file e $# sarà vuota.

Bene, iniziamo. Avviamo la modailità di creazione delle regole per INCRON con:

ed inseriamo:

Questo esempio permetterà di vedere nel file /var/log/syslog i dettagli delle modifiche ai files presenti in /tmp.

Vediamo ora un esempio utile, ad esempio ricaricare la configurazione di apache se cambiano i dettagli dei virtual-hosts. Accediamo in modifica al file di INCRON e digitiamo:

Solo a titolo di verifica, provate a modificare un file ed a controllare che ci sia la relativa entry /var/log/syslog ed il dettaglio in /var/log/apache2/error.log.

Infine, se si vuole cancellare completamente il file INCRON per l’utente, basterà digitare:

enjoy!




Se hai trovato utili le informazioni su questo blog,
Fai una donazione!
Clicca sul bottone qui sotto o almeno clicca sul banner pubblicitario :-)
*
Taggato su:

Commenti

Page optimized by WP Minify WordPress Plugin