Automatizza i processi con Cron e Crontab in Solaris

La funzione cron offre un potente programmatore di processi a risoluzione minima. Se un processo deve essere eseguito ripetutamente senza intervento umano, una voce nel file crontab può ospitare la maggior parte delle pianificazioni. Ci sono semplici regole per modificare le voci di crontab che devono essere seguite.


Per modificare il file crontab, è necessario utilizzare il programma crontab. I file crontab attuali non devono essere modificati direttamente perché i contenuti sono memorizzati nella cache e le modifiche non avranno effetto fino a quando il processo di crond non viene riavviato. L'uso del programma crontab per modificare il crontab aggiornerà la cache quando il file viene modificato. Per modificare il file crontab dell'utente corrente, utilizzare quanto segue:

crontab -e

L'opzione -e indica al programma di modificare una copia del file crontab dell'utente. La variabile d'ambiente EDITOR è referenziata per determinare quale editor usare (l'impostazione predefinita è ed). Per impostare questa variabile d'ambiente, vedi le ricette per ksh e sh.

Il superutente può modificare il crontab di un utente specifico aggiungendo il nome utente alla fine di questo comando. I processi eseguiti da crontab di un utente verranno eseguiti come tale utente. Fai attenzione con i comandi in crontab di root perché questi verranno eseguiti come root e potrebbero causare problemi. Se gli script della shell vengono eseguiti da crontab di root, assicurati che le loro autorizzazioni di file non consentano la modifica da parte di nessuno tranne root.

La sintassi di crontab è semplice. Ogni riga rappresenta una singola operazione pianificata. I primi cinque campi rappresentano le informazioni di temporizzazione e tutto ciò che segue è interpretato come il comando da pianificare. I campi di temporizzazione in ordine sono i seguenti:

minuti - 0-59
ore - 0-23
giorni del mese - 1-31
mesi dell'anno - 1-12
giorni della settimana - 0-6 (domenica-sabato)

Una varietà di opzioni funziona per ogni campo. Un asterisco (*) indica tutte le occorrenze possibili per quel campo. Un numero imposta quella singola occorrenza. Due numeri separati da a - indicano un intervallo di valori, mentre i numeri separati da una virgola indicano un elenco di occorrenze.

Ecco alcuni esempi:

15 * * * * logcheck
Esegue un comando chiamato 'logcheck' ogni 15 minuti di ogni giorno.

0,15,30,45 8-17 * * 1-5 dobackup
Esegue il dobackup ogni 15 minuti (ad esempio, 8:00, 8:15, 8:30 e 8:45) durante l'orario lavorativo (dalle 8:00 alle 17:00) durante i giorni lavorativi (dal lunedì al venerdì).