Introduzione al servizio Scheduling di CronTab I

di Luca Bove (PuntoWeb.Net Srl)

Alcuni processi devono essere eseguiti a determinati orari, un determinato numero di volte. Esempi di questi possono essere i processi di backup che vengono lanciati ogni notte, oppure un analizzatore di log che deve girare ogni minuto.
Questi processi devono girare un certo numero di volte oppure in determinati giorni; il resto del tempo essi stanno fermi fino a quando un utente non interagisce con essi e li richiama (con gli appositi comandi). Qui è dove il CRON si rende utile. Vi permette di programmare (o "schedulare", come si dice in gergo) l'esecuzione di un lavoro in qualsiasi momento desideriate, ogni minuto, ogni ora, giornalmente, mensilmente.
E' un sollievo sapere che ci sono vari programmi che stanno girando senza alcun bisogno della vostra supervisione.

Le Basi
Cron può essere fatto partire da rc o da rc.local e ritorna immediatamente al prompt, sicchè non c'é bisogno di lanciarlo in background. Cron ricerca il file /etc/crontab per le voci (le cosiddette "entry") di sistema e /var/spool/cron per le voci relative agli utenti che si trovano nel file /etc/passwd. Tutte le voci ritrovate sono caricate in memoria.
Tutto ciò viene ripetuto ogni minuto appena cron "si sveglia" ed esegue diversi compiti:
a) ricerca le voci ed esegue i programmi che sono stati schedulati.
b) determina se il modtime (vale a dire la data e l'ora dell'ultima modifica) nella directory di cron è cambiato c) se il modtime nella directory cron è cambiato, cron ricerca tutti i file e ricarica i programmi che sono stati modificati.

Poiché cron cerca le modifiche ogni minuto, non è necessario farlo ripartire quando sono stati effettuati dei cambiamenti (editati) nei file nella directory cron.


Utilizzare crontab
Il "cron daemon" legge il file "crontab"; ogni utente può avere la propria versione di questo file, orientata agli specifici compiti che si vogliono eseguire. I flag associati con le applicazioni crontab specificano quando aprire crontab per avere la lista o per rimuovere e modificare compiti.

La sintassi per il programma crontab è la seguente:

crontab [-u user] file
crontab [-u user] -l -e -r


Questi parametri indicano: -u questa opzione comunica al sistema il nome dell'utente che "possiede" il file. Se l'opzione -u è omessa, il sistema deduce per default che state usando il vostro crontab personale.
Il comando switch user (su) può confondere il crontab, così se siete nello switch "su" assicuratevi di utilizzare l'opzione -u.
-l questa opzione dice a crontab di elencare i file nello standard output, in poche parole visualizza il file.
-e questa opzione dice a crontab di editare il file. Cron usa l'editor definito dalla variabile EDITOR o da VISUAL. Se nessuna di queste variabili è definita, parte in automatico l'editor "vi". Quando si esce dall'editor, è immediamente piazzato nella locazione corretta e viene aggiornato il campo data/ora.
-r questa opzione rimuove il file crontab specificato, se nessun file viene specificato, rimuove il file crontab dell'utente.


Continua a pagina seguente >>>

AUTORE DEL TESTO
Luca Bove (PuntoWeb.Net Srl)

Pubblicato il: 29/08/2001