|
Dimensione: 6568
Commento: sistemata sezione
|
Dimensione: 6750
Commento: revisionata
|
| Le cancellazioni sono segnalate in questo modo. | Le aggiunte sono segnalate in questo modo. |
| Linea 10: | Linea 10: |
| = Creazione di un crontab personalizzato = | = Creare e modifica un crontab personalizzato = |
| Linea 18: | Linea 18: |
Una volta chiuso l'editor, il nuovo file di '''crontab''' verrà salvato in `/var/spool/cron/crontabs`. ||<tablestyle="text-align: justify; width:100%; " style="border:none;" 5%>[[Immagine(Icone/Piccole/note.png,,center)]] ||<style="padding:0.5em; border:none;">''I file di'' '''crontab''' ''possono essere modificati solo con il comando'' '''crontab -e'''. || |
|
| Linea 29: | Linea 33: |
| = Sintassi dei comandi = | = Esempi di sintassi dei comandi = |
| Linea 31: | Linea 35: |
| Il file crontab deve rispettare una sintassi ben precisa, diversamente il sistema non accetterà le impostazioni. Questo è un esempio tipico di sintassi di crontab: |
Il file '''crontab''' deve rispettare una sintassi ben precisa, diversamente il sistema non accetterà le impostazioni. Quello che segue è un esempio generico: |
| Linea 38: | Linea 40: |
| L'esempio precedente eseguirà {{{/usr/bin/apt-get update}}} ogni giorno di ogni mese alle 03:05 (cron utilizza un tempo indicato sul sistema di 24 ore). | L'esempio precedente eseguirà il comando '''apt-get update''' ogni giorno di ogni mese alle ore 03:05 (l'orario viene indicato nel formato a 24 ore). |
| Linea 40: | Linea 42: |
| La prima parte della voce descrive quando l'azione deve essere effettuata. Ci sono cinque campi ("5 3 * * *"), separati da uno spazio, ognuno dei quali accetta un numero, un asterisco (*), o un testo appropriato. I campi specificano, in ordine (tra parentesi l'abbreviazione standard): *minuto 0-59 (m), *ora 0-23 (h), *giorno del mese 1-31 (dom), *mese 1_12 (mon), *giorno della settimana 0-6 (n.b. la domenica è 0)(dow). |
La prima parte della voce descrive quando l'azione deve essere effettuata. Ci sono cinque campi (nell'esempio precedente, «5 3 * * *»), separati da uno spazio, ognuno dei quali accetta un numero, un asterisco o un testo appropriato. I campi specificano, in ordine (tra parentesi l'abbreviazione standard): * minuti, da 0 a 59 («m»); * ore, da 0 a 23 («h»); * giorno del mese, da 1 a 31 («dom»); * mese, da 1 a 12 («mon»); * giorno della settimana, da 0 (domenica) a 6 (sabato) («dow»). |
| Linea 47: | Linea 49: |
| Il campo del mese e quello del giorno della settimana permettono di usare un'abbreviazione, come ad esempio "jan" per Gennaio (January) o "thu" per Giovedì (Thursday). Per esempio, questo è il contenuto di un tipico crontab di sistema: |
Il campo del mese e quello del giorno della settimana permettono di usare un'abbreviazione, come ad esempio «jan» per gennaio (in inglese January) o «thu» per giovedì (in inglese Thursday). Quello che segue è un esempio del contenuto di un '''crontab''' di sistema: |
| Linea 57: | Linea 58: |
| Nota anche che l'asterisco (*), chiamato WILDCARD, che consente di non specificare alcun valore per il campo in oggetto. | L'asterisco «*» consente di non specificare alcun valore per il campo in cui viene inserito. |
| Linea 59: | Linea 60: |
| Ecco altri esempi che chiariscono l'uso della sintassi: | Quello che segue è un esempio utile a chiarire l'uso della sintassi: |
| Linea 61: | Linea 62: |
| 12 03 * * 1,4 /percorso/assoluto/per/la/webroot/cgibin/script.cgi }}} 12: minuti [0-59] 03: ore [0-23] *: giorno del mese [1-31] *: mese [1-12] 1,4: giorno della settimana [0-6, con la domenica indicata da 0] /script.cgi: comando [lo script da eseguire] Traduzione: alle 3:12a.m., orario del server, ogni lunedì e giovedì, lo script script.cgi verrà eseguito. Alcune variazioni sul tema * tutte le mattine, più o meno alle 3?> 12 03 * * * * tutti i 15 del mese, alla stessa ora?> 12 03 15 * * * 7 volte l'anno, alla stessa ora?> 12 03 31 * * [solo 7 mesi hanno 31 giorni] * ogni domenica, a mezzogiorno?> 0 12 * * 0 * ogni giorno, più o meno a mezzanotte?> 2 0 * * * * ogni lunedì e venerdì, alle 3 del mattino circa?> 02 03 * * 1,5 Puoi fare in modo che '''cron''' ti annoi ogni 5 minuti durante il tuo turno di lavoro (9 di mattina - 5 di pomeriggio) con un messaggio: {{{ */5 9-17 * * mon,tue,wed,thur,fri wall "Siamo ancora qui?" |
12 03 * * 1,4 /percorso/script.cgi |
| Linea 85: | Linea 65: |
| o ricordarti un compleanno alle 9 di mattina il 10 gennaio ogni anno: | Segue la spiegazione dei singoli parametri: * '''12''': minuti; * '''03''': ore; * '''*''': giorno del mese (tutti i giorni); * '''*''': mese (tutti i mesi); * '''1,4''': giorni della settimana, separati da una virgola (il lunedì e il giovedì); * `/percorso/comando`: comando da eseguire;. |
| Linea 87: | Linea 73: |
| {{{ 0 9 10 jan * echo "E' il compleanno di tua madre oggi!" > ~/readme }}} |
Una volta impostata tale pianificazione, ogni lunedì e giovedì, alle ore 3:12, verrà eseguito il comando '''/percorso/comando'''. |
| Linea 91: | Linea 75: |
| = Gestione dei crontabs = | Quelle che seguono sono alcune varianti della precedente pianificazione d'esempio: |
| Linea 93: | Linea 77: |
| Naturalmente è possibile vedere quali crontab sono in esecuzione sul sistema, è sufficiente usare il comando: | ||<style="background-color:#e0cd4e;":>'''Stringa''' ||<style="background-color:#e0cd4e;":>'''Descrizione''' || || «12 03 * * *» || tutte le mattine, più o meno alle 3 || || « 12 03 15 * *» || tutti i 15 del mese, alla stessa ora || || «12 03 31 * *» || 7 volte l'anno, alla stessa ora || || «0 12 * * 0» || ogni domenica, a mezzogiorno || || «2 0 * * *» || ogni giorno, più o meno a mezzanotte || || «02 03 * * 1,5» || ogni lunedì e venerdì, alle 3 del mattino circa || |
| Linea 95: | Linea 85: |
| Seguono sono ulteriori esempi: * {{{ */5 9-17 * * mon,tue,wed,thur,fri wall "Siamo ancora qui?" }}} Stampa un messaggio ogni 5 minuti, durante il tutto giorno. * {{{ 0 9 10 jan * echo "È il compleanno di tua madre oggi!" > ~/readme }}} Ricorda un compleanno alle 9 di mattina del 10 gennaio di ogni anno. = Gestione dei crontab = Per vedere quali '''crontab''' sono in esecuzione sul sistema è sufficiente digitare il seguente comando: |
|
| Linea 99: | Linea 100: |
| = Modifica dei crontab = Per modificare il file, digitare di nuovo: {{{ crontab -e }}} Quando chiuderai l'editor, il nuovo file di crontab sarà installato. Il file è mantenuto in ''/var/spool/cron/crontabs'' ma deve essere modificato solo per mezzo del comando di crontab. |
|
| Linea 111: | Linea 102: |
| I comandi precedenti sono memorizzati in un file di crontab e verranno eseguiti con il livello di permessi dell'utente a cui appartiene. Se vuoi lanciare un comando regolarmente che richiede un livello più alto di permessi, imposta un file di crontab per root usando: |
Il file '''crontab''' dell'utente contiene comandi che verranno eseguiti con il livello di permessi dell'utente stesso. Se si desidera pianificare un'azione che richiede i [:Sudo:privilegi di amministrazione] è possibile creare un file di '''crontab''' per l'utente '''root''' con il seguente comando: |
| Linea 117: | Linea 107: |
| A seconda dei comandi che dovrai utilizzare, potresti avere bisogno di modificare la variabile PATH inserendo la seguente linea all'inizio del file di crontab dell'utente: |
A seconda dei comandi che si desidera utilizzare, potrebbe essere necessario modificare la variabile d'ambiente «PATH», inserendo la seguente linea all'inizio del file di '''crontab''' dell'utente: |
| Linea 123: | Linea 112: |
| = Crontab per eseguire backup di dati = | = Eseguire backup periodici = |
| Linea 125: | Linea 114: |
| Uno degli utilizzi più frequenti, ed utili, del comando cron riguardano l'esecuzione periodica del backup dei dati. In questo esempio cron eseguirà un backup giornaliero, alle ore 19:30, della cartella "documenti", e delle sue sottocartelle, creando un file di archivio dal nome "backup_utente.tgz". |
Uno degli utilizzi più frequenti del comando '''cron''' riguarda l'esecuzione periodica del backup dei dati. Nel seguente esempio '''cron''' eseguirà un backup giornaliero, alle ore 19:30, della cartella `/home/utente/documenti` e delle sue sottocartelle, creando un file di archivio dal nome `/backup_utente.tgz`. |
| Linea 131: | Linea 119: |
| Questo è solo un esempio delle potenzialità di questo comando. Per maggiori informazioni sul backup dei dati con '''tar''' consulta questa [:BackupDelSistema/BackupConTar:guida]. | = Verificare le impostazioni = |
| Linea 133: | Linea 121: |
| = Considerazioni finali = E' sensato voler testare se tutto funziona come voluto. Un metodo per farlo è impostare un'azione da eseguire un paio di minuti dopo la modifica del file di crontab e vedere il risultato. Puoi anche trovare utile mettere il comando in un file che terrà traccia del successo o del fallimento dell'esecuzione: |
Per verificare il corretto funzionamento di '''cron''' è sufficiente impostare un'azione da eseguire pochi minuti dopo la modifica del file di '''crontab''' e osservare il risultato. A tale scopo è utile inserire il comando in un file che terrà traccia del successo o del fallimento dell'esecuzione, come nell'esempio seguente: |
| Linea 141: | Linea 126: |
| Per maggiori informazioni, utilizza '''man''' per '''cron''' e '''crontab'''. Potrebbe anche esserti utile il comando '''at''' (che è parte dell'installazione base di Ubuntu) ed '''anacron''' (che si trova nel repository Universe) che fornisce un approccio diverso per azioni programmate. | = Ulteriori risorse = |
| Linea 143: | Linea 128: |
| = Ulteriori risorse = | |
| Linea 145: | Linea 129: |
| * [http://man.linuxquestions.org/index.php?section=0&type=2&print=1&query=cron&sourceid=mozilla-search Pagina man di cron] * [:BackupDelSistema/BackupConTar:Guida al backup con tar] |
|
| Linea 146: | Linea 132: |
| CategoryAmministrazione CategoryDaRevisionare | CategoryAmministrazione |
IndiceBRTableOfContents |
Introduzione
Il servizio cron viene utilizzato per eseguire le azioni pianificate. Le informazioni necessarie a programmare ogni singola azione (con relativi tempi e procedure) sono indicate nel file di configurazione crontab.
Creare e modifica un crontab personalizzato
Il sistema ha un suo file di cron (presente in /etc/crontab), ma ogni utente può creare il proprio. Per creare un file di cron è sufficiente digitare il seguente comando in una finestra di terminale:
crontab -e
Il precedente comando apre un [:EditorDiTesto:editor di testo] contenente un documento vuoto nel quale andranno inseriti i comandi desiderati; tale file andrà salvato con il nome e nel percorso suggeriti dall'editor. Se la sintassi dei comandi non è corretta le azioni non verranno eseguite.
Una volta chiuso l'editor, il nuovo file di crontab verrà salvato in /var/spool/cron/crontabs.
I file di crontab possono essere modificati solo con il comando crontab -e. |
Per vedere se il sistema ha salvato correttamente il proprio file di cron, digitare il seguente comando:
crontab -l
Verrà stampato l'elenco dei crontab registrati per l'utente corrente; in assenza di file di cron validi il risultato sarà simile al seguente:
no crontab for nomeutente
Esempi di sintassi dei comandi
Il file crontab deve rispettare una sintassi ben precisa, diversamente il sistema non accetterà le impostazioni. Quello che segue è un esempio generico:
5 3 * * * /usr/bin/apt-get update
L'esempio precedente eseguirà il comando apt-get update ogni giorno di ogni mese alle ore 03:05 (l'orario viene indicato nel formato a 24 ore).
La prima parte della voce descrive quando l'azione deve essere effettuata. Ci sono cinque campi (nell'esempio precedente, «5 3 * * *»), separati da uno spazio, ognuno dei quali accetta un numero, un asterisco o un testo appropriato. I campi specificano, in ordine (tra parentesi l'abbreviazione standard):
- minuti, da 0 a 59 («m»);
- ore, da 0 a 23 («h»);
- giorno del mese, da 1 a 31 («dom»);
- mese, da 1 a 12 («mon»);
- giorno della settimana, da 0 (domenica) a 6 (sabato) («dow»).
Il campo del mese e quello del giorno della settimana permettono di usare un'abbreviazione, come ad esempio «jan» per gennaio (in inglese January) o «thu» per giovedì (in inglese Thursday). Quello che segue è un esempio del contenuto di un crontab di sistema:
m h dom mon dow user command 17 * * * * root run-parts --report /etc/cron.hourly 25 6 * * * root test -x /usr/sbin/anacron || run-parts --report /etc/cron.daily 47 6 * * 7 root test -x /usr/sbin/anacron || run-parts --report /etc/cron.weekly 52 6 1 * * root test -x /usr/sbin/anacron || run-parts --report /etc/cron.monthly
L'asterisco «*» consente di non specificare alcun valore per il campo in cui viene inserito.
Quello che segue è un esempio utile a chiarire l'uso della sintassi:
12 03 * * 1,4 /percorso/script.cgi
Segue la spiegazione dei singoli parametri:
12: minuti;
03: ore;
*: giorno del mese (tutti i giorni);
*: mese (tutti i mesi);
1,4: giorni della settimana, separati da una virgola (il lunedì e il giovedì);
/percorso/comando: comando da eseguire;.
Una volta impostata tale pianificazione, ogni lunedì e giovedì, alle ore 3:12, verrà eseguito il comando /percorso/comando.
Quelle che seguono sono alcune varianti della precedente pianificazione d'esempio:
Stringa |
Descrizione |
«12 03 * * *» |
tutte le mattine, più o meno alle 3 |
« 12 03 15 * *» |
tutti i 15 del mese, alla stessa ora |
«12 03 31 * *» |
7 volte l'anno, alla stessa ora |
«0 12 * * 0» |
ogni domenica, a mezzogiorno |
«2 0 * * *» |
ogni giorno, più o meno a mezzanotte |
«02 03 * * 1,5» |
ogni lunedì e venerdì, alle 3 del mattino circa |
Seguono sono ulteriori esempi:
*/5 9-17 * * mon,tue,wed,thur,fri wall "Siamo ancora qui?"
Stampa un messaggio ogni 5 minuti, durante il tutto giorno.0 9 10 jan * echo "È il compleanno di tua madre oggi!" > ~/readme
Ricorda un compleanno alle 9 di mattina del 10 gennaio di ogni anno.
Gestione dei crontab
Per vedere quali crontab sono in esecuzione sul sistema è sufficiente digitare il seguente comando:
crontab -l
Crontab per comandi root
Il file crontab dell'utente contiene comandi che verranno eseguiti con il livello di permessi dell'utente stesso. Se si desidera pianificare un'azione che richiede i [:Sudo:privilegi di amministrazione] è possibile creare un file di crontab per l'utente root con il seguente comando:
sudo crontab -e
A seconda dei comandi che si desidera utilizzare, potrebbe essere necessario modificare la variabile d'ambiente «PATH», inserendo la seguente linea all'inizio del file di crontab dell'utente:
PATH=/usr/sbin:/usr/bin:/sbin:/bin
Eseguire backup periodici
Uno degli utilizzi più frequenti del comando cron riguarda l'esecuzione periodica del backup dei dati. Nel seguente esempio cron eseguirà un backup giornaliero, alle ore 19:30, della cartella /home/utente/documenti e delle sue sottocartelle, creando un file di archivio dal nome /backup_utente.tgz.
30 19 * * * tar -cvpzf /backup_utente.tgz /home/utente/documenti
Verificare le impostazioni
Per verificare il corretto funzionamento di cron è sufficiente impostare un'azione da eseguire pochi minuti dopo la modifica del file di crontab e osservare il risultato. A tale scopo è utile inserire il comando in un file che terrà traccia del successo o del fallimento dell'esecuzione, come nell'esempio seguente:
echo "Backup riuscito: $(date)" >> /tmp/mybackup.log
Ulteriori risorse
- [wiki:Ubuntu/CronHowto Documento originale]
[http://man.linuxquestions.org/index.php?section=0&type=2&print=1&query=cron&sourceid=mozilla-search Pagina man di cron]
[:BackupDelSistema/BackupConTar:Guida al backup con tar]
