Cerca


stampa pdf
Operazioni pianificate

In Linux, delle operazioni possono essere configurate per essere eseguite automaticamente per un periodo di tempo stabilito e ad una data stabilita. Red Hat Linux è preconfigurato per l'esecuzione di alcune operazioni di sistema che permettono di mantenere il vostro sistema aggiornato. Ad esempio, il data-base si aggiorna quotidianamente. Un amministratore di sistema può utilizzare le operazioni pianificate per effettuare copie periodiche di salvataggio, sorvegliare il sistema, eseguire degli script personalizzati, ecc.

Configurazione di un' operazione pianificata

La cartella principale di configurazione delle operazioni pianificate, /etc/crontab, contiene le seguenti righe :

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
01 **** root run-parts /etc/cron.hourly
02 4*** root run-parts /etc/cron.daily
22 4 **0 root run-parts /etc/cron.weekly
42 4 1 **root run-parts /etc/cron.monthly


Le prime quattro sono variabili che servono a configurare l'ambiente nel quale le operazioni pianificate vanno eseguite. Il valore della variabile SHELL indica al sistema quale ambiente shell egli deve utilizzare (in quest'esempio, bash shell), e la variabile PATH definisce il percorso d'accesso utilizzato per l'esecuzione dei comandi. Il risultato delle operazioni pianificate è inviato da e-mail a nome dell'utente definito dalla variabile MAILTO. Se la variabile MAILTO è vuota (MAILTO= ""), nessuna e-mail verrà inviata. La variabile HOME può essere utilizzata per la configurazione della directory da utilizzare per l'esecuzione di comandi o di script.

Ogni riga del file /etc/crontab ha il formato :

minute hour day month dayofweek command

* minute - numero intero tra 0 e 59
* hour - numero intero tra 0 e 23
* day - numero intero tra 1 e 31 (se il mese è precisato, il giorno deve essere valido)
* month - numero intero tra 1 e 12 (o abbreviazione del nome del mese)
* dayofweek - numero intero tra 0 e 7, dove 7 rappresenta la domenica (o l'abbreviazione del giorno della settimana)
* command - il comando da effettuare. Il comando puo' essere un comando come ls /proc >> /tmp/proc o il comando d'esecuzione di uno script personalizzato di cui siete l'autore.

Per i valori quì sopra, un asterisco (*) può essere utilizzato per indicare tutti i valori validi. Ad esempio, un asterisco utilizzato per il valore del mese significa un'esecuzione del comando tutti i mesi (con rispetto delle restrizioni degli altri valori).

Una lineetta (-) messa tra due numeri interi indica una gamma di numeri interi. Ad esempio, 1-4 corrisponde ai numeri interi 1,2,3 e 4.

Una lista di valori separati da virgole (,) corrisponde ad una lista. Ad esempio, 3,4,6,8 corrisponde a questi quattro numeri interi specifici.

La sbarra obliqua (/) può essere utilizzata per precisare valori scaglionati. Per passare un numero intero in una gamma, fatte seguire da / . Ad esempio, 0-59/2 permette di definire un minuto su due nel campo dei minuti. Questi valori scaglionati possono anche essere utilizzati con un asterisco. Ad esempio, il valore */3 può essere utilizzato nel campo dei mesi per passare un mese su tre.

Le righe che cominciano con un segno cancelletto (#) corrispondono a commenti e non sono trattate.

Come eseguire uno script automaticamente sul server dedicato (pianificandolo)?

Inizialmente, occorre assicurarsi che lo script funzioni in modalita' shell, cioè che sia capace di essere eseguito dalla linea di comando. Perciò, occorre mettere nella prima linea #! /usr/local/bin/php se si tratta di un script php, #! /usr/bin/perl se è un script perl, o #! /bin/bash per un script shell, quindi utilizzare il comando chmod 700 script.cgi sullo script. Se avete l'accesso telnet/ssh, potete provare la sua esecuzione con ./script.cgi

Basta in seguito inserire nel file /etc/crontab, il percorso dello script e l'ora d'esecuzione.

Esempio:

Preparazione di uno script automatico per l'utilizzo dei grafici mrtgs:

*/5 **** root /usr/local/mrtg-2/bin/mrtg /home/ovh/www/mrtg/mrtg-sys/mrtg-sys/mrtg_nsxxxx.ovh.net.cfg >/dev/null 2>/dev/null

/home/ovh/www/mrtg/mrtg-sys/mrtg-sys/mrtg_nsxxxx.ovh.net.cfg correspond au chemin vers le script d'excution.
*/5 **** correspond aux heures d'exécution.
Ici le script sera lancé toutes les 5 minutes.