Come utilizzare crontab di Linux
Vi sara’ capitato di voler eseguire periodicamente uno script all’interno del vostro server/computer Linux senza il vostro intervento diretto. Il sistema operativo dispone di un server che permette di eseguire determinati comandi e/o script ad una determinata ora, in un determinato giorno con un intervallo di ripetizione che potete decidere. Si tratta di CRONTAB che con il suo demone “CRON” gestisce i “cronjob” secondo le vostre esigenze.
Iniziamo col dire che si possono definire restrizioni relativamente agli utenti che possono eseguire i job. Questi vanno specificati nei due file:
/usr/lib/cron/cron.deny
/usr/lib/cron/cron.allow
Se non esiste /usr/lib/cron/cron.allow tutti possono creare i loro job su cron.
E’ possibile visualizzare i task con i seguenti comandi:
‘crontab -e’: Permette di editare il vostro file di crontab , se non esiste lo crea
‘crontab -l’: Permette di visualizzare il contenuto del file di crontab e quindi tutti i task
‘crontab -r’: Elimina il file di crontabe e quindi tutti i task
‘crontab -v’: Permette di visualizzare l’ultima modifica al vostro file di crontab (disponibile solo con alcune versioni di cron server)
I task vengono elencati nel file di crontab con la segeunte forma:
* * * * * Comando-Da_Eseguire
- – – – -
| | | | |
| | | | + —– Giorno della settimana (0 – 6) (Domenica=0)
| | | + ——— Mese (1 – 12)
| | + ———— Giorno del mese (1 – 31)
| + —————- Ora (0 – 23)
+ ——————– Minuti (0 – 59)
Da considerare che il carattere * identifica la parola “ogni” quindi se lo trovate nella prima colonna identifica la parola “ogni minuto”, in seconda colonna “ogni ora” e cosi’ via…
Di seguito quindi alcuni esempi pratici di configurazione:
. Eseguire “mioscript” ogni dieci minuti:
0-50/10 * * * * mioscript
. Eseguire “mioscript” tra le 8 e le 18 ogni 20 minuti nei giorni feriali:
0,20,40 8-18 * * 1-5
. Eseguire “mioscript” ogni 8 ore:
59 0-23/8 * * *
Normalmente il demone cron invia un email di notifica all’utente di riferimento se i comandi eseguiti producono un output. Per evitare l’output dei comandi eseguiti si puo’ aggiungere alla fine il sequente:
>/dev/null 2>&1
Se invece si utilizza “vixie Cron” è possibile inserire alla fine del crontab il comando:
MAILTO=”"
All’interno delle virgolette si puo’ naturalemente scegliere di inseire un indirizzo email qualora desiderato.
A presto….scheduliamo un prossimo articolo


