Cos'è il crontab?
Nei sistemi UNIX e UNIX Like, il comando crontab consente di impostare delle operazioni pianificate, si tratta, cioè, di comandi che verranno eseguiti periodicamente in modo completamente automatico dal sistema operativo non appena si saranno verificate le condizioni temporali impostate in sede di pianificazione.
L'esecuzione dei comandi, da un punto di vista tecnico, è presidiata dal demone crond che "gira" costantemente nel sistema e si occupa di verificare ogni minuto i comandi in scadenza: quando il comando giunge a scadenza il demone crond lo manda in esecuzione. I comandi inseriti all'interno del crontab si chiamano cronjob.
La sintasi del crontab
I vari cronjob vengono salvati all'interno di un file di testo secondo una sintassi ben precisa così articolata:
- i primi 5 campi rappresentano la "condizione temporale" e sono, nell'ordine:
- minuto di esecuzione (0-59)
- ora di esecuzione (0-23)
- giorno del mese (1-31)
- mese (1-12)
- giorno della settimana (0-6 dove 0 è domenica)
- il sesto campo della linea è il comando da eseguire (con l'aggiunta di una eventuale indicazione circa il redirect dell'output).
Per i primi 5 campi è possibile utilizzare anche valori multipli utilizzando i seguenti operatori:
- virgola (,); definisce una lista di valori (ad esempio: 1,2,5,8)
- trattino (-): definisce un range di valori (ad esempio: 1-4 corrisponde a 1,2,3,4)
- asterisco (*): definisce ogni valore possibile (se utilizzato nel campo minuto, ad esempio, siignifica "ogni minuto")
- barra (/): è utilizzato in combinazione all'asterisco per creare ripetizioni periodiche (ad esempio */3 nel campo dei giorni vuol dire ogni tre giorni)
Segue un esempio di operazione pianificata eseguita a mezzanotte di ogni sabato:
0 0 * * 6 /script/mio_comando.sh >/dev/null 2>&1
Generare on-line la sintassi del crontab
Attraverso il tool presente in questa pagina è possibile generare in modo semplice ed intuitivo una valida sintassi per definire cronjob all'interno del crontab del vostro spazio web.
Vediamo di seguito come utilizzare il tool di generazione crontab:
- impostiamo minuto, ora, giorno del mese, mese e giorno della settimana selezionando i valori desiderati all'interno dei campi di selezione:
- inseriamo il comando che si desidera eseguire;
- specifichiamo in che modo vogliamo gestire l'output prodotto dal comando; per la gstione dell'output possiamo scegliere tra tre diverse opzioni: silenzioso (il comando non produrrà alcun output visibile in quanto questo verrà redirezionato verso /dev/null), scrivi su file (l'output prodotto dal comando verrà scritto all'interno di un file; in questo caso è necessario soecificare il percorso del file sul quale si desidera scrivere) e invia email (l'output prodotto dal comando verrà inviato via email all'indirizzo specificato);
- Copiate ed incollate la sintassi prodotta all'interno del vostro crontab eseguendo da console il comando crontab -e.