9 Linux Cron

11
Cron Cron è il sistema che si occupa di eseguire, attraverso il demone cron, dei comandi in momenti determinati in base a quanto stabilito all'interno della sua configurazione, rappresentata dai file crontab. L'output dei comandi che il sistema Cron mette in esecuzione, se non è stato ridiretto in qualche modo, per esempio a /dev/null o a un file, viene inviato con un messaggio di posta elettronica all'utente cui appartiene il file crontab.

Transcript of 9 Linux Cron

Page 1: 9 Linux Cron

Cron

Cron è il sistema che si occupa di eseguire, attraverso il demone cron, dei comandi in momenti determinati in base a quanto stabilito all'interno

della sua configurazione, rappresentata dai file crontab.

L'output dei comandi che il sistema Cron mette in esecuzione, se non è stato ridiretto in qualche modo, per esempio a /dev/null o a un file, viene inviato con un messaggio di posta elettronica all'utente cui appartiene il

file crontab.

Page 2: 9 Linux Cron

Cron directory di lavoro

/var/spool/cron/crontabs/ Directory contenente i file di pianificazione degli utenti./etc/crontab File di pianificazione di sistema./etc/cron.d/* Cron di sistema divisi per cartelle/etc/cron.hourly/etc/cron.weekly/etc/cron.monthly

Page 3: 9 Linux Cron

Utilizzo di «crontab» (UTENTE)

Il programma crontab permette di creare o modificare il file crontab di un utente determinato.

Sintassi:crontab [opzioni]

Opzioni:crontab [-u utente] file Sostituisce il file crontab con il file indicato come argomento.

crontab -l [utente] Visualizza il file crontab dell'utente.

crontab -e [utente] Crea o modifica il file crontab dell'utente.

crontab -r [utente] Cancella il file crontab dell'utente.

Page 4: 9 Linux Cron

Utilizzo di «crontab» (UTENTE)

Sintassiminuti ore giorni_del_mese mesi giorni_della_settimana

N.b.I campi possono contenere un asterisco (*) e in tal caso rappresentano ogni valore possibile di quel campo. Per esempio, * * * * * rappresenta ogni minuto di ogni ora di ogni giorno del mese di ogni mese di ogni giorno della settimana.

Es.

*/15 * * * * updatedb

Esegue il comando updatedb ogni 15 minuti quindi alle ora.15, ora.30, ora.45 (comincia a contare da 0).

Page 5: 9 Linux Cron

Utilizzo di «crontab» (UTENTE)

Sintassiminuti ore giorni_del_mese mesi giorni_della_settimana

Contesto Intervallo possibileminuti da 0 a 59;ore da 0 a 23;giorni del mese da 1 a 31;mesi da 1 a 12;giorni della settimana da 0 a 7, dove sia zero, sia sette corrispondono alla domenica.

Page 6: 9 Linux Cron

Utilizzo di «crontab» (UTENTE)

minuti ore giorni_del_mese mesi giorni_della_settimana#Valori singoli Un numero isolato all'interno di un campo indica che il comando deve essere eseguito quando l'orologio del sistema raggiunge quel valore. Per esempio, 10 6 * * * rappresenta esattamente le ore 06:10 di ogni giorno.

#IntervalliUn intervallo, rappresentato da una coppia di numeri separati da un trattino, indica che il comando deve essere eseguito ogni volta che l'orologio del sistema raggiunge uno di quei valori possibili. Per esempio, 10 6 1-5 * * rappresenta esattamente le ore 06:10 dei primi cinque giorni di ogni mese.

Page 7: 9 Linux Cron

File «crontab»

minuti ore giorni_del_mese mesi giorni_della_settimana#ElenchiUn elenco, rappresentato da una serie di numeri separati da una virgola (senza spazi), indica che il comando deve essere eseguito ogni volta che l'orologio del sistema raggiunge uno di quei valori.Per esempio, 10 6 1-5 1,3,5 * rappresenta esattamente le ore 06:10 dei primi cinque giorni di gennaio, marzo e maggio.

Gli elenchi possono essere anche combinati con gli intervalli. Per esempio, 10 6 1-5 1-3,5-7 * rappresenta esattamente le ore 06:10 dei primi cinque giorni di gennaio, febbraio, marzo, maggio, giugno e luglio.

Page 8: 9 Linux Cron

File «crontab»

#PassoInvece di indicare momenti precisi, è possibile indicare una ripetizione o un passo. Questo può essere rappresentato con una barra obliqua seguita da un valore e indica che il comando deve essere eseguito ogni volta che è trascorsa quella unità di tempo. Per esempio, */10 6 * * * rappresenta le ore 06:10, 06:20, 06:30, 06:40, 06:50 e 06:00. In pratica, corrisponde a 0,10,20,30,40,50 6 * * *.

Il passo può essere combinato opportunamente con gli intervalli. Per esempio, 0-30/10 6 * * * rappresenta le 06:00, le 06:10, le 06:20 e le 06:30. In pratica, corrisponde a 0,10,20,30 6 * * *.

Page 9: 9 Linux Cron

Utilizzo di «crontab» (UTENTE)## Utilizza «/bin/sh» per eseguire i comandi, indipendentemente da# quanto specificato all'interno di «/etc/passwd».#SHELL=/bin/sh## Invia i messaggi di posta elettronica all'utente «tizio»,# indipendentemente dal proprietario di questo file crontab.#MAILTO=tizio## Esegue 5 minuti dopo la mezzanotte di ogni giorno.#5 0 * * * $HOME/bin/giornaliero >> $HOME/tmp/out 2>&1## Esegue ogni cinque minuti del giorno 15#*/5 * 15 * * touch /tmp/nomefile ## Esegue ogni cinque minuti di ogni giorno*/5 * * * * touch /tmp/nomefile #

Page 10: 9 Linux Cron

Utilizzo di «crontab» (UTENTE)

+——————————— minuto (0-59)| +————————- ora (1-31)| | +—————– giorno del mese (1-31)| | | +——— mese (1-12)| | | | +- giorno della settimana (0-6, sun=0)| | | | |* * * * * “comando”5 0 * * * “comando” Esegue 5 minuti dopo la mezzanotte di ogni giorno.*/5 * 15 * * “comando” Esegue ogni cinque minuti del giorno 15*/5 * * * * “comando” Esegue ogni cinque minuti di ogni giorno

Page 11: 9 Linux Cron

File «/etc/crontab» (Sistema)

Il file /etc/crontab differisce dal crontab dell' utente in quanto definisce anche utente in nome

del quale deve essere eseguito il comando indicato successivamente.

E.s.Crontab (utente)

*/5 * 15 * * “comando” Esegue ogni cinque minuti del giorno 15

Crontab Sistema (etc/crontab)*/5 * 15 * * utente “comando” Esegue ogni cinque minuti del giorno 15con i privilegi di “utente”