Cron & Crontab: scheduliamo i processi!


Cron consente di eseguire in automatico un programma (script)  in base al mese, al giorno, alla data, all’ora, e al minuto. Cron, è in sintesi un servizio che viene avviato da alcuni script durante la fase di avvio del sistema operativo e ogni minuto controlla se vi sono degli eventi da eseguire all’interno del file crontab. In poche parole è questa la relazione che vi è tra il servizio Cron e il file Crontab.

L’AVVIO DI CRONTAB

All’avvio del vostro GNU/Linux, Cron viene lanciato dallo script /etc/init.d/cron e carica (legge) il file /etc/crontab, i files presenti nelle directory /etc/cron.d, /var/spool/cron/crontabs ed /etc/passwd caricando in memoria i jobs corrispondenti. Ogni utente, compreso il superutente (root) ha il proprio file crontab nella directory /var/spool/cron/.E’ in questo file che l’utente può avviare alcune applicazioni, schedulare l’esecuzione di alcuni processi o altro ancora.

I PERMESSI DI CRON

Normalmente, tutti gli utenti presenti in un sistema possono modificare il file crontab, però tale situazione può essere cambiata modificando due file: /etc/cron.allow ed /etc/cron.deny. Il primo, se presente, contiene gli utenti che sono abilitati all’utilizzo di crontab (si specifica su ogni riga il nome dell’utente). Il secondo, se esiste permette di inserire gli utenti che non possono utilizzare crontab. (si specifica solo un utente per riga).

IL SERVIZIO CRON ESISTE?

Per verificare l’esistenza di Cron (se è attivo) basta scrivere da terminale:

# ps aux | grep ‘crond’

Se l’istruzione precedente da luogo ad un esito positivo il servizio Cron esiste!

IL FILE CRONTAB

Il file crontab verifica se l’utente ha i permessi nei file /etc/cron.allow e /etc/cron.deny di eseguire i “processi” schedulati.

L’inserimento di un nuovo evento nel file crontab avviene digitando dalla finestra del terminale il seguente comando:

# crontab -e

E’ da notare, che l’evento da aggiungere ha la seguente formattazione:

Minuti Ora Giorno Mese Giorno-del-Mese Comando-da-eseguire

Di seguito trovate alcuni esempi di eventi inseriti nel file crontab.

10 02 * * * /home/backupindicicommerciali

40 04 * * 1 /home/backupgestionearrivi

0,25,50 12-18 * * 1-5 /home/backupindici

0 * * * 0,6 /home/backupindici

Come si vede nel primo esempio, prima si aggiungono i minuti (10) e poi l’ora (02). I tre asterischi indicano che l’esecuzione avverrà in tutti i giorni, tutti i mesi, tutti i giorni della settimana, e infine il processo da eseguire si trova nella cartella /home/ e si chiama backupindicicommerciali.

Nel secondo esempio, l’esecuzione avviene allo stesso modo del primo esempio, tranne che per l ‘esecuzione del processo che avviene il lunedì, all’inizio di ogni settimana  (indicato con il numero 1, mentre la domenica si indica con il valore zero).

Nel terzo esempio al minuto 0, 25 e 50 di ogni ora viene lanciato il processo backupindici tra mezzogiorno e le 18 dei giorni feriali (indicato con il numero 1-5).

Nel quarto esempio ogni ora viene lanciato il processo backupindici nei giorni di sabato e domenica (0,6).

Una volta aggiunti gli eventi si salva il file con il tasto ESC, di seguito si digitano le lettere :wq (tale situazione in presenza dell’editor di default vi) si preme invio e si registra definitivamente la variazione voluta.

Se si vuole ottenere una lista degli eventi contenuti nel file crontab basta digitare il seguente comando da terminale (da shell):

# crontab -l

In sintesi, per modificare gli eventi di cron basta digitare il comando crontab -e, mentre per visualizzarli solamente basta digitare il comando crontab -l. Il comando utilizza in modo predefinito l’editor (normalmenti vi) specificato nelle variabili di ambiente EDITOR e VISUAL.

Vai alla pagina successiva >

No votes yet.
Please wait...
Voting is currently disabled, data maintenance in progress.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

9 − sei =

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.