GNU/Linux >> Linux Esercitazione >  >> Linux

Come utilizzare il formato Cron Job per pianificare attività in Linux

Cron è un demone di pianificazione che utilizza un formato specifico per eseguire i lavori. Ecco come usarlo su Linux per l'esecuzione automatica delle attività.

Cron è una delle utility più utili che puoi trovare e utilizzare in qualsiasi sistema operativo Linux o Unix. L'uso di cron è un modo popolare per eseguire periodicamente attività come comandi o script di shell. Queste attività periodiche sono note anche come Cron Jobs e sono programmate per essere eseguite a un'ora specifica.

Ad esempio, puoi impostare un cron job per automatizzare attività ripetitive come il backup di un database o di dati, l'aggiornamento del sistema con le ultime patch di sicurezza, l'invio di e-mail e così via.

Cron prende il nome dalla parola greca "Chronos" che è usata per il tempo. Questa guida fornisce una panoramica su come pianificare i lavori con crontab e su come utilizzare il formato di sintassi speciale di cron per eseguirli.

Cos'è il file crontab?

Soprattutto, il file crontab è un semplice file di testo contenente un elenco di comandi che devono essere eseguiti a orari specificati. Viene modificato utilizzando il crontab comando. I comandi nel file crontab (e i relativi tempi di esecuzione) sono controllati dal demone cron, che li esegue in background del sistema.

Ogni riga di un file crontab è "attiva" o "inattiva". Una riga "attiva" è un'impostazione dell'ambiente o una voce di comando cron. Una riga "inattiva" è qualsiasi cosa ignorata, inclusi i commenti.

Le righe vuote, gli spazi iniziali e le tabulazioni vengono ignorate. Righe il cui primo carattere non di spazio è un cancelletto (# ) vengono interpretati come commenti e vengono ignorati.

Tieni presente che i commenti non sono consentiti sulla stessa riga dei comandi cron, perché verranno interpretati come parte del comando. Per lo stesso motivo, i commenti non sono consentiti sulla stessa riga delle impostazioni delle variabili di ambiente.

Voci del formato Cron Job

Ogni voce in un file crontab è composta da sei campi, specificando nel seguente ordine:

minute hour day month weekday command
Campo Valori possibili Sintassi Descrizione
Minuto 0 – 59 11 * * * *  Il processo cron viene avviato ogni volta che l'orologio di sistema mostra 11 nella posizione dei minuti.
Ora 0 – 23 0 1 * * * Il lavoro cron viene eseguito ogni volta che l'orologio di sistema mostra l'1:00 (l'1:00 sarebbe codificata come 13).
Giorno 0 – 31 0 0 19 * *  Il giorno del mese è 19, il che significa che il processo viene eseguito ogni 19 giorni del mese.
Mese 0 =nessuno e 12 =dicembre 0 0 0 7 * Il mese numerico è 7, il che determina che il lavoro viene eseguito solo a luglio.
Giorno feriale 0 =domenica e 7 =domenica 0 0 * * 1 1 nella posizione corrente significa che il lavoro verrebbe eseguito solo il lunedì.
Comando Speciale La sequenza completa di comandi da eseguire. Sono accettabili comandi, eseguibili (come script) o combinazioni.

Ognuno di questi campi può essere impostato su un asterisco (* ) , che sta per "dal primo all'ultimo". Ad esempio, per eseguire un lavoro ogni ora, inserisci * nel campo dell'ora.

Sono consentiti anche intervalli di numeri. Gli intervalli sono due numeri separati da un trattino (- ). L'intervallo specificato è inclusivo. Ad esempio, 8-11 per una voce "ore" specifica l'esecuzione alle ore 8 , 9 , 10 e 11 .

Gli elenchi sono consentiti. Un elenco è un insieme di numeri (o intervalli) separati da virgole (, ). Ecco alcuni esempi:1,2,5,9 o 0-4,8-12 .

I passaggi sono consentiti anche dopo un asterisco , quindi se vuoi dire "ogni due ore", puoi utilizzare */2 .

Il daemon cron controlla il crontab una volta al minuto. I comandi vengono eseguiti da cron quando i campi dei minuti, dell'ora e del mese corrispondono all'ora corrente e almeno uno dei due campi del giorno (giorno del mese o giorno della settimana) corrisponde al giorno corrente.

Formato di sintassi speciale di Cron

I lavori Cron offrono anche alcune stringhe formattate in modo speciale, che possono essere utilizzate al posto dei cinque campi di data e ora. Sono essenzialmente scorciatoie per la pianificazione numerica equivalente specificata:

Stringa Msenso
@reboot Esegue il comando specificato una volta, all'avvio .
@annualmente, @annualmente Entrambi eseguono l'attività specificata ogni anno alle ore 12:00 del 1 gennaio. Ciò equivale a specificare "0 0 1 1 *" nel file crontab.
@mensile Esegue il lavoro una volta al mese , il 1, alle ore 12:00. Nella sintassi cron standard, questo equivale a "0 0 1 * *"
@settimanale Esegue il lavoro una volta alla settimana alle 12:00 di domenica. Nella sintassi cron standard, questo equivale a "0 0 * * 0"
@giornaliero, @mezzanotte Entrambi eseguono il cronjob ogni giorno alle 12:00. Ciò equivale a specificare "0 0 * * *" nel file crontab.
@hourly Esegue il lavoro nella parte superiore di ogni ora . Nella sintassi cron standard, questo equivale a "0 * * * *"

Come utilizzare il comando crontab

Il crontab comando crea un file crontab contenente comandi e istruzioni utilizzando un formato di lavoro cron specifico per l'esecuzione del demone cron. Puoi usare il crontab comando con le seguenti opzioni:

Comando Descrizione
crontab -e Modifica il tuo file crontab o creane uno se non esiste già.
crontab -l Visualizza il tuo file crontab.
crontab -r Rimuovi il tuo file crontab.
utente crontab -u Utilizzata insieme ad altre opzioni, questa opzione consente di modificare o visualizzare il file crontab dell'utente. Solo gli amministratori possono utilizzare questa opzione.

Ad esempio, per modificare o creare il tuo file crontab, digita il seguente comando al prompt della shell:

crontab -e

Non è necessario riavviare cron dopo aver modificato il file crontab. Cron esaminerà il tempo di modifica su tutti i crontab e ricaricherà quelli che sono stati modificati.

Come modificare un file crontab che appartiene a un altro utente

Per modificare il file crontab che appartiene a root o a un altro utente devi diventare root. Ovviamente, non è necessario diventare root per modificare il file crontab.

crontab -u [username] -e

Come rimuovere un file crontab

Il più delle volte, non vorrai rimuovere il file crontab. Tuttavia, potresti voler rimuovere alcune righe dal file crontab.

Per rimuovere il file crontab del tuo utente, esegui il comando seguente:

crontab -r

Esempi di lavoro Cron

Comando Cron Job
* * * * * /root/script.sh Esegui Cron Job ogni minuto.
0 * * * * /root/script .sh Esegui Cron Job ogni ora.
0 0 * * * /root/script .sh Esegui Cron Job ogni giorno a mezzanotte.
0 2 * * * /root/script .sh Esegui Cron Job ogni giorno alle 2 del mattino.
0 0 15 * * /root/script .sh Esegui Cron Job ogni 15 del mese a mezzanotte.
0 0 0 12 * /root/script .sh Esegui Cron Job il 1° dicembre a mezzanotte.
0 0 * * 6 /root/script .sh Esegui Cron Job sabato a mezzanotte.
0 15 * * 1-5 /root/script.sh Esegui Cron Job alle 15:00 tutti i giorni dal lunedì al venerdì.
*/5 * * * * /root/script.sh Esegui Cron Job ogni 5 minuti.
0 8-16 * * * /root/script.sh Esegui Cron Job ogni giorno, ogni ora, ogni ora, dalle 8:00 alle 16:00.
0 4 * * 2,4 /root/script.sh Esegui Cron Job alle 4:00 di martedì e giovedì.
@reboot /root/script.sh Esegui Cron Job all'avvio del sistema.

Conclusione

Ora hai una buona comprensione di come utilizzare il formato cron job per pianificare attività in Linux. Usa gli esempi presentati in questa guida per creare e programmare processi cron sul tuo sistema. Se combinato con gli script della shell, puoi automatizzare attività che normalmente sono noiose o complicate.

Per ulteriori informazioni, le pagine man di cron e crontab qui e qui contengono informazioni e descrizioni eccellenti su come funziona il sistema cron.


Linux
  1. Come usare cron su Linux

  2. Come usare il comando Linux grep

  3. Come usare il comando cronologia in Linux

  4. Come uso cron in Linux

  5. Come utilizzare il comando id in Linux

Come utilizzare il comando Ping di Linux

Come utilizzare il comando fd sul sistema Linux

Come utilizzare il comando Jobs in Linux

Come utilizzare il comando superiore come Task Manager in Linux

Come utilizzare il comando wget in Linux?

Come usare il comando xargs in Linux?