Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "AmministrazioneSistema/Cron"
Differenze tra le versioni 17 e 18
Versione 17 del 21/10/2007 11.44.51
Dimensione: 6978
Commento: sistemata la sintassi e modificare crontab
Versione 18 del 21/10/2007 13.13.27
Dimensione: 6929
Commento: sistemato backup
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 102: 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 108: 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 114: Linea 112:
= Crontab per eseguire backup di dati = = Eseguire backup di dati periodicamente =
Linea 116: 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 121: Linea 118:

Questo è solo un esempio delle potenzialità di questo comando. Per maggiori informazioni sul backup dei dati con '''tar''' consulta questa [:BackupDelSistema/BackupConTar:guida].
Linea 135: Linea 130:
Linea 136: Linea 132:
 * [:BackupDelSistema/BackupConTar:Guida al backup con tar]

BR

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.

Immagine(Icone/Piccole/note.png,,center)

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 di dati periodicamente

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

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:

echo "Backup riuscito: $(date)" >> /tmp/mybackup.log

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


CategoryAmministrazione CategoryDaRevisionare