dal 2015 - visita n. 574
Seminario.11
Seminario.11

 

Cron e Crontab

Alcuni processi devono essere eseguiti ad orari determinati e per un numero prefissato di volte. Esempi di questi possono essere i processi di backup che vengono lanciati ogni notte, oppure un analizzatore di log che deve girare ogni minuto, o ancora un sincronizzatore di clock, in generale un qualsiasi script o un programma che debba essere attivato ad intervalli regolari di tempo.

A questo punto entra in azione Cron, un meccanismo sempre presente in Linux, costituito da un programma demone (che gira in background) e che, ad intervalli regolari, esegue dei compiti ben precisi. Normalmente non bisogna installarlo in quanto Ŕ gia' attivo nel proprio sistema Linux.

Funzionamento di Cron

Cron viene attivato ogni minuto e legge degli opportuni file di configurazione dove vengono specificate le operazioni da compiere e gli intervalli relativi. Se trova qualcosa da eseguire nel minuto in cui si e' attivato, allora procede all'operazione.

Tutto cio' che viene scritto sullo standard output, viene inviato via email al proprietario del cron, tipicamente "root".

Cron non deve essere riavviato per ogni modifica, ma ci sono tre modi diversi di specificare operazioni ed intervalli.



Primo modo - La via piu' semplice e' la creazione di uno script (sh, bash, perl o altro) che esegue cio' che vogliamo. Tale script andra' inserito in una delle directory seguenti:

/etc/cron.daily     /etc/cron.hourly     /etc/cron.weekly     /etc/cron.monthly

a seconda che debba essere eseguito ad intervalli rispettivamente di un giorno, un'ora, una settimana, un mese. Per maggior comoditÓ si possono tenere tutti gli script in un'unica directory e poi creare dei soft link ("man ln", "ln -s") opportuni verso le directory sopra elencate.
I cron giornalieri, mensili e settimanali di solito, di default, vengono eseguiti alle 4:00 (piena notte!).



Secondo modo - Per intervalli di tempo diversi da quelli standard, e' possibile usare dei particolari file di testo, scritti in un formato convenzionale, conservati nella directory /etc/cron.d/ oppure utilizzare il file /etc/crontab scritto con le stesse convenzioni. Con il formato adottato sarÓ possibile specificare operazioni che dovranno essere eseguite anche ad intervalli di tempo dell'ordine del minuto.
Una tipica riga di questi file di testo avrÓ il seguente formato:

st1  st2  st3  st4  st5  Proprietario Comando

Le cinque stringhe stx servono a specificare diversi intervalli temporali secondo le seguenti convenzioni:


Ognuna di queste stringhe puo' contenere il carattere "*" per indicare qualunque.
Tutte e cinque le stringhe possono contenere: un numero, l'asterisco, oppure un intervallo.
Specificando un numero, si indica un momento preciso; se il particolare campo non interessa, perchŔ non utile alla definizione del tempo di attivazione, si usa l'asterisco; spesso, pero' quello che serve e' un certo intervallo e non un momento unico e preciso, ecco alcuni esempi tra i pi¨ comuni:

Sono possibili anche altre combinazioni, facilmente intuibili; ed ancora possono essere inserite delle righe, con formato diverso, appartenenti alle seguenti categorie:


Ecco alcune righe d'esempio:

   # Esegue il comando indicato ogni cinque minuti, solo il 15 di ogni mese,
   # con proprietario "root"
   */5 * 15 * * root /bin/ls /var/log>/temp/ls.out

   # Manda una mail con il testo indicato ogni giorno alle 8:00 di mattina, 
   # con proprietario "root". Se MAILTO vale "root" allora la mail arriva a root.

   0 8 * * * root echo "Buongiorno e buon lavoro!!!"

   #Esegue ogni minuto!!! Il proprietario e' "pippo".
   * * * * * pippo /usr/bin/gimp
ntpdate tempo.ien.it










Cron e Crontab
Altri Editor
Elenco Comandi


Editor Joe
Midnight Comm.


Cap11.pdf
Lucidi 11 PDF



L'egoismo non consiste nel vivere secondo i propri desideri, ma nel pretendere che gli altri vivano a quel modo che noi vogliamo.
L'altruismo consiste nel vivere e lascia vivere.
Oscar Wilde

Valid CSS!
pagina generata in 0.001 secondi