• Forum
  • Arretrati
  • Shop

STAFF

cod OFFLINE OFFLINE
dndvault OFFLINE OFFLINE
Joernano OFFLINE OFFLINE
klaudia OFFLINE OFFLINE
Lemoeb OFFLINE OFFLINE
tuttoeniente OFFLINE OFFLINE
  • Vuoi lavorare per Topolinux?

    Stiamo ricercando: Giornalisti
    Manda una mail o il tuo articolo a:
    redazione[at]topolinux.org

  • Iscriviti alla nostra newsletter!



  • Sostieni Topolinux!

    Aiutaci a fornire servizi sempre
    migliori con una donazione

  • Ricerche


Versione stampabile

Stonedz

Crontab e i cronjobs

L'automatizzazione dello svolgimento di operazioni uguali o simili tra loro, è sicuramente un grande vantaggio nel mondo dell'informatica. Nel mondo degli Unices ci viene in aiuto il comando crontab che si interfaccia con il demone chiamato comunemente crond. Questo comando ci permette di modificare ed aggiungere nuove operazioni che il demone crond andrà ad eseguire al momento da noi specificato.

Quando voglio inserire o modificare i miei cronjobs (lavori che saranno svolti da crond) utilizzo:

30 0 * * * /usr/local/bin/backup_server subversion
45 0 * * * /usr/local/bin/backup_server site
30 23 * * * /usr/local/bin/backup_server trac_projects
50 23 * * * /usr/local/bin/backup_server save_to_remote
40 23 * * * /usr/local/bin/backup_server configuration
0 5 * * * /usr/local/bin/cvsup /root/ports-supfile

La prima cosa da dire è che l'asterisco (*) assolve qui il significato di 'sempre', 'qualsiasi'. Vediamo subito che l'ultima parte di ogni riga è composta da un comando; per essere più precisi abbiamo un percorso assoluto di un eseguibile seguito dalle sue opzioni. E' importante sapere che i percorsi degli eseguibili vanno inseriti nella forma assoluta, pena non vedersi eseguito il proprio cronjob.

Non ci resta che capire che cosa siano i cinque elementi che precedono il percorso dell'eseguibile. Si tratta di indicazioni sul quando il comando in questione verrà eseguito. Da sinistra a destra, con i valori permessi, abbiamo:

  • Minuti: da 0 a 59
  • Ore: da 0 a 23
  • Giorno del mese: da 1 a 31
  • Mese: da 0 a 12
  • Giorno della settimana: da 0 a 7 (con 0 e 7 che valgono come domenica)

Ora è facile capire quando vengano eseguiti i comandi dell'esempio precedente: Il primo viene eseguito (partiamo da destra anche questa volta) qualsiasi giorno della settimana (*), in qualsiasi mese (*), in qualsiasi giorno del mese (*), alle ore 0 e 30 minuti, e così funziona per gli altri.

I valori specificati nei campi tempo/data, possono essere espressi in diverse maniere:

  • Intervalli es. 1-3 (inclusi gli estremi)
  • Liste es 1,4,5 o 1-4-5
  • Steps */2 (Ad esempio, nel campo ora, acquista il significato di: "ogni due ore")

Come ultima cosa è utile sapere che al posto dei primi cinque campi è possibile utilizzare delle espressioni riservate. Queste parole sono:

  • @reboot: ad ogni reboot;
  • @yearly: ogni anno;
  • @annually: come sopra;
  • @monthly: ogni mese;
  • @weekly: ogni settimana;
  • @daily: ogni giorno;
  • @midnight: alla mezzanotte di ogni giorno;
  • @hourly: ogni ora.

Come al solito la pagina di manuale di crontab potrà fornirvi ulteriori informazioni.

Per citare questo articolo:

Stonedz, Crontab e i cronjobs, Topolinux, 12, maggio 2008, http://topolinux.org/ezine_articles.php?id=37