Pianificazione di attività periodiche utilizzando Cron in Linux
cron
è un programma Linux utilizzato per pianificare un comando o uno script da eseguire in un secondo momento. Può anche essere utilizzato per pianificare l'esecuzione periodica di comandi e script. I programmi pianificati utilizzando cron sono comunemente indicati come Cron Jobs. Il suo utilizzo principale è per attività di amministrazione del sistema come backup regolari, aggiornamenti software regolari e altre attività di manutenzione simili.
introduzione
cron
viene eseguito come demone in Linux, ovvero come processo in background. Consente agli utenti di pianificare i lavori direttamente con il comando crontab, che apre un file di configurazione chiamato Cron File in un editor. Vengono creati file Cron separati per ogni utente.
Creazione di un file Cron e sintassi di base
Il crontab
il comando può essere eseguito con -e
flag per modificare un file Cron esistente. Se il file non esiste già, verrà creato. Se l'utente chiama il comando per la prima volta e se sul sistema Linux sono installati più editor di file, il comando chiederà all'utente di scegliere un editor predefinito da un elenco di editor.
Dopo aver scelto l'editor, verrà creato e aperto un file cron per l'utente. Ora puoi specificare i lavori nel file.
La sintassi generale per specificare un Cron Job è:
Fondamentalmente, il verrà eseguito al 'minuto' (0-59), 'ora' (0-23), 'giorno del mese' (1-31), mese (1-12), giorno della settimana, (0-7, Per la domenica, è possibile utilizzare 0 o 7) nel Cron Job. Per semplificare, facciamo un esempio:
1 2 3 4 5 echo "Ciao"
Questo significa il comando eco "Ciao"
si svolgerà ogni quinto giorno della settimana (venerdì) e ogni 3° giorno del mese, ogni 4° mese dell'anno (aprile), alle ore 02:01 (2° ora primo minuto).
Se lo stesso comando deve essere eseguito ogni giorno alle 02:01, la sintassi sarà simile a:
1 2 * * * echo "Ciao"
Il *
significa "sempre" o "per tutti", ad es. per tutti i mesi, per tutti i giorni della settimana, ecc.
L'operatore di comando (,
) può essere utilizzato per inserire un elenco di valori quando l'attività deve essere ripetuta. Per esempio:
0 2,3,4 * * * echo "Ciao"
Questo eseguirà il programma alle 2 del mattino, alle 3 del mattino e alle 4 del mattino, tutti i giorni.
Allo stesso modo, un trattino (-
) operatore può essere utilizzato per specificare un intervallo per il quale l'attività deve essere ripetuta. Per esempio:
0-20 2 * * * echo "Ciao"
Questo eseguirà il programma alle 02:00, 02:01, 02:02 e così via fino alle 02:20.
Infine, abbiamo la barra ( /
) operatore. Questo operatore viene utilizzato per specificare un valore di intervallo in base al quale verrà ripetuta l'attività. Per esempio. */15
nel campo dei minuti significa che l'attività deve essere ripetuta ogni 15 minuti. 2-10/2
nel campo ore specifica che l'attività deve essere ripetuta tra le 2:00 e le 10:00 dopo ogni intervallo di 2 ore (2:00, 4:00, 6:00, 8:00, 10:00).
*/15 2-10/2 * * * echo "Ciao"
Dopo aver inserito la voce nel file Cron, salvare il file ed uscire dall'editor.
Dovresti vedere un 'installazione di nuovo crontab' messaggio nel terminale dopo aver salvato e chiuso il file crontab.
macro
Alcune macro sono predefinite in Cron che specificano alcuni intervalli di tempo comunemente richiesti, come ogni ora, ogni giorno, ogni mese, ecc.
Per eseguire un'attività una volta al giorno all'inizio della giornata, ad esempio alle 00:00, utilizzare la macro @quotidiano
. Questo è equivalente a 0 0 * * *
.
Puoi inserirlo nel file Cron nello stesso modo descritto prima.
In modo simile, possono essere utilizzate le altre macro, vale a dire. @ogni ora
(Minuto 0 di ogni ora), @mensile
(00:00 del primo giorno del mese), @settimanalmente
(00:00 del primo giorno della settimana, @annuale
(00:00 del primo gennaio di ogni anno), @riavviare
(a ogni avvio del computer).
Conclusione
In questo articolo, abbiamo imparato come aggiungere Cron Jobs per l'esecuzione regolare in Linux. L'uso corretto di Cron Jobs è utile anche per le attività manuali più fastidiose affrontate dall'utente, ad es. cancellazione regolare di vecchi registri, archiviazione di tutti i tipi di dati freddi (dati a cui si accede raramente), ecc.