BSD-FAQ-it
Indietro | Capitolo 8. Programmare le attività | Avanti

# 8.4. La tabella di crontab (/etc/crontab)

La tabella di crontab viene memorizzata nel file /etc/crontab ed il suo mantenimento è fondamentale alla vita del nostro sistema, di seguito vediamo la tabella che viene installata come default da FreeBSD

    # /etc/crontab - root's crontab for FreeBSD
    #
    # $FreeBSD: src/etc/crontab,v 1.21.2.3 2000/12/08 10:56:07 obrien Exp $
    #
    SHELL=/bin/sh
    PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin
    HOME=/var/log
    #
    #minute hour    mday    month   wday    who     command
    #
    */5     *       *       *       *       root    /usr/libexec/atrun
    #
    # rotate log files every hour, if necessary
    0       *       *       *       *       root    newsyslog
    #
    # do daily/weekly/monthly maintenance
    1       3       *       *       *       root    periodic daily
    15      4       *       *       6       root    periodic weekly
    30      5       1       *       *       root    periodic monthly
    #

Per utilizzare al meglio e programmare dunque il nostro sistema ad eseguire automaticamente le attività di aggiornamento e mantenimento, analizziamo nel dettaglio i campi che consentono di programmare la tabella di crontab

minute | 0-59 | il valore può essere rappresentato da un numero fisso o può essere impostato un range
hour | 0-23 | si imposta l'ora nella quale viene programmato il job
mday | 1-31 | in questo campo è possibile impostare il valore ``1,15,30'' per impostare l'esecuzione del job ogni 1°, 15° e 30° giorno del mese
month | 1-12 | in questo campo è possibile impostare il valore ``*/2 per definire l'esecuzione del job ogni 2 mesi
wday | 0-7 | in questo campo il valore ``0'' significa ogni giorno, il valore ``1'' indica l'esecuzione del job ogni lunedì, il valore ``7'' indica l'esecuzione del job ogni domenica
who | user | si tratta dell'utente di sistema che esegue lo script, genericamente viene utilizzato l'utente root

La wildcard ``*'' viene interpretata come un valore qualsiasi, per eseguire un comando ogni mese nel campo rispettivo si inserirà la wildcard ``*'', gli script delle procedure periodice vengono memorizzati nella directory /etc/periodic

    # ls /etc/periodic/
    total 14
    drwxr-xr-x   7 root  wheel   512 Aug 21 23:24 ./
    drwxr-xr-x  16 root  wheel  2048 Aug 29 20:32 ../
    drwxr-xr-x   2 root  wheel   512 Aug 30 12:13 altre/
    drwxr-xr-x   2 root  wheel  1024 Aug 27 15:43 daily/
    drwxr-xr-x   2 root  wheel   512 Aug 25 18:32 monthly/
    drwxr-xr-x   2 root  wheel   512 Jun  9 12:01 security/
    drwxr-xr-x   2 root  wheel   512 Jun 16 15:27 weekly/

Nell'esempio che abbiamo riportato sopra possiamo vedere il contenuto della directory /etc/periodic laddove è stata inserita una nuova cartella/etc/periodic/altre nella quale verranno memorizzati tutti gli script periodici che non possono essere classificati nella categoria delle procedure periodiche standard

@reboot | ad ogni riavvio del sistema
@yearly | ogni anno - sostituisce il valore 0 0 1 1 *
@annually | come @yearly
@monthly | ogni mese - sostituisce il valore 0 0 1 * *
@weekly | ogni settimana - sostituisce il valore 0 0 * * 0
@daily | ogni giorno - sostituisce il valore 0 0 * * *
@midnight | come @daily
@hourly | ogni ora - sostituisce il valore 0 * * * *

Questa tabella contiene un'altro esempio di programmazione del file /etc/crontab, nella tabella sono indicati dei nuovi valori per esprimere le rispettive periodicità con le rispettive traduzioni nei campi standard.

In questo caso tutti i messaggi provenienti dal demone ppp verranno rediretti verso il file /var/log/ppp.log, se vengono definiti dei nuovi selettori la cui attività è scrivere un file di log, è necessario che il file stesso venga precedentemente creato (comando touch).

Indietro | Partenza | Avanti
Introduzione al cron | Risali | Net-snmp (simple network management protocol)