Cerca


stampa pdf
Operazioni automatizzate con Crontab

In ambiente Linux è presente un sistema che permette di gestire automaticamente dei task aperti dopo averli pianificati, determinando la frequenza di esecuzione, la data e l'ora dell'avvio del task.
Questo genere di routine viene utilizzato spesso per i task di amministrazione del sistema che ti permettono di mantenere aggiornato il tuo sistema come, ad esempio, effettuare delle copie di backup periodiche, monitorare il sistema, eseguire degli script personalizzati, etc.

Esiste una crontab per utilizzatore. Solo il root può consultare ogni crontab.
Ogni linea del file /etc/crontab ha questo formato:

minute hour day month dayofweek command

Ogni linea deve presentare obbligatoriamente 6 colonne:
* minute? numero intero compreso tra 0 e 59
* hour? numero intero compreso tra 0 e 23
*day? numero intero compreso tra 1 e 31 (se il mese è specificato il giorno deve essere valido)
* month? numero intero compreso tra 1 e 12 (o abbreviazione del nome del mese)
* dayofweek? numero intero compreso tra 0 e 7, 0 dove 7 rappresenta la domenica (o l'abbreviazione del nome del giorno)
* command? il comando da eseguire. Può essere un comando come ls /proc >> /tmp/proc o il comando di esecuzione di uno script creato da te.


Per i valori qui sopra può essere utilizzato un asterisco (*) per indicare tutti i valori validi.
Ad esempio, un asterisco utilizzato per il valore del giorno significa una esecuzione del comando tutti i giorni (tenendo comunque in considerazione le restrizioni degli altri valori).

Un trattino (-) tra due numeri interi indica un intervallo di tempo.
Ad esempio, 1-4 indica i minuti compresi tra 1 e 4.

Una lista di valori separati da virgole (,) corrisponde a una lista di valori.
Ad esempio 0, 10, 20, 30 indica i minuti 0, 10, 20 e 30.

La barra (slash) (/) si utilizza per valori in sequenza. Per inserire numeri in sequenza inserisci /.
Ad esempio, 0-59/2 permette di selezionare tutti i valori pari compresi tra 0 e 59. Questi valori possono comunque essere utilizzati con un asterisco. Per esempio, il valore */3 può essere utilizzato nel campo dei mesi per includere un mese su 3.

Le linee che cominciano col cancelletto (#) corrispondono a commenti e non sono considerate.


Come eseguire automaticamente uno script su un server condiviso (in Cron)?

Innanzitutto è necessario che lo script funzioni in modalità shell, che possa quindi essere eseguito dalla linea di comando. Per questo, bisogna inserire nella prima linea #!/usr/local/bin/php se si tratta di uno script Php, #!/usr/bin/perl per gli script Perl o #!/bin/bash per script Shell e poi utilizzare il comando chmod 700 script.cgi sullo script. Se hai l'accesso telnet/SSH, puoi testarne l'esecuzione con ./script.cgi (opzione facoltativa per l'esecuzione degli script Php).

Non dimenticare di usare il comando cd /home/login all'inizio dello script o di utilizzare percorsi assoluti per precisare il nome dei file (esempio: /home/login/texte.txt invece di de texte.txt), per far eseguire il tuo script nella directory.

Quando sei sicuro del buon funzionamento dello script in modalità shell, puoi attivare dei task Cron sul tuo hosting Perso, Pro, Business o Premium. E' necessario accedere al Manager OVH, nella sezione Hosting, opzione Pianificazione dei task:



In questa sezione trovi la lista dei task pianificati, con possibilità di modifica e controllo della loro esecuzione.
Clicca su Crea per inserire un nuovo Cron:



Indica quindi:
- la posizione dello script da eseguire (dove si trova il file nel tuo FTP)
- il linguaggio utilizzato per lo script (PHP 4, PHP 5 o altri)
- la descrizione del tuo task (per mantenerne traccia sul tuo Manager)

Scegli la periodicità di esecuzione del tuo Cron, che può essere lanciato da tutti i giorni a un'ora al giorno al massimo
Conferma la pianificazione e clicca sul pulsante Conferma.