Introduzione
Un cron job è un'attività che viene eseguita a intervalli specificati. Le attività possono essere pianificate per essere eseguite per minuto, ora, giorno del mese, mese, giorno della settimana o qualsiasi combinazione di questi.
I lavori cron vengono generalmente utilizzati per automatizzare la manutenzione o l'amministrazione del sistema, come il backup di database o dati, l'aggiornamento del sistema con le ultime patch di sicurezza, il controllo dell'utilizzo dello spazio su disco, l'invio di e-mail e così via.
L'esecuzione di cron job ogni 5, 10 o 15 minuti sono alcune delle pianificazioni cron più comunemente utilizzate.
Sintassi e operatori di Crontab
Crontab (tabella cron) è un file di testo che definisce la pianificazione dei lavori cron. I file Crontab possono essere creati, visualizzati, modificati e rimossi con il comando crontab
.
Ogni riga nel file crontab dell'utente contiene sei campi separati da uno spazio seguito dal comando da eseguire:
* * * * * command(s)
^ ^ ^ ^ ^
| | | | | allowed values
| | | | | -------
| | | | ----- Day of week (0 - 7) (Sunday=0 or 7)
| | | ------- Month (1 - 12)
| | --------- Day of month (1 - 31)
| ----------- Hour (0 - 23)
------------- Minute (0 - 59)
I primi cinque campi (ora e data) accettano anche i seguenti operatori:
*
- L'operatore asterisco indica tutti i valori consentiti. Se hai il simbolo dell'asterisco nel campo dei minuti, significa che l'attività verrà eseguita ogni minuto.-
- L'operatore trattino consente di specificare un intervallo di valori. Se si imposta1-5
nel campo Giorno della settimana, l'attività verrà eseguita ogni giorno della settimana (dal lunedì al venerdì). L'intervallo è inclusivo, il che significa che il primo e l'ultimo valore sono inclusi nell'intervallo.,
- L'operatore virgola consente di definire un elenco di valori per la ripetizione. Ad esempio, se hai1,3,5
nel campo Ora, l'attività verrà eseguita all'1: 00, alle 3:00 e alle 5:00. L'elenco può contenere singoli valori e intervalli,1-5,7,8,10-15
./
- L'operatore barra consente di specificare i valori degli step che possono essere utilizzati insieme agli intervalli. Ad esempio, se hai1-10/2
nel campo Minuti, significa che l'azione verrà eseguita ogni due minuti nell'intervallo 1-10, come specificato1,3,5,7,9
. Invece di un intervallo di valori, puoi anche utilizzare l'operatore asterisco. Per specificare un lavoro da eseguire ogni 20 minuti, è possibile utilizzare*/20
.
La sintassi dei file crontab a livello di sistema è leggermente diversa da quella dei crontab utente. Contiene un campo utente obbligatorio aggiuntivo che specifica quale utente eseguirà il cron job.
* * * * * <username> command(s)
Per modificare il file crontab o crearne uno se non esiste, utilizzare il comando crontab -e
.
Eseguire un Cron Job ogni 5 minuti
Esistono due modi per eseguire un cron job ogni cinque minuti.
La prima opzione è usare l'operatore virgola per creare un elenco di minuti:
0,5,10,15,20,25,30,35,40,45,50,55 * * * * command
La riga sopra è sintatticamente corretta e funzionerà perfettamente. Tuttavia, digitare l'intero elenco può essere noioso e soggetto a errori.
La seconda opzione per specificare un lavoro da eseguire ogni 5 minuti ore consiste nell'utilizzare l'operatore passo:
*/5 * * * * command
*/5
significa creare un elenco di tutti i minuti ed eseguire il lavoro per ogni quinto valore dall'elenco.
Eseguire un Cron Job ogni 10 minuti
Per eseguire un cron job ogni 10 minuti, aggiungi la seguente riga nel tuo file crontab:
*/10 * * * * command
Eseguire un Cron Job ogni 15 minuti
Per eseguire un cron job ogni 15 minuti, aggiungi la seguente riga nel tuo file crontab:
*/15 * * * * command
Conclusione
Ti abbiamo mostrato come eseguire un comando cron ogni 5, 10 o 15 minuti. Per maggiori informazioni sui Cron Jobs leggere questa guida: Come pianificare (Scheduling) Cron Jobs con Crontab su Linux.