GNU/Linux >> Linux Esercitazione >  >> Linux

Come automatizzare le attività in Linux usando Crontab

A volte, potresti avere attività che devono essere eseguite su base regolare oa determinati intervalli predefiniti. Tali attività includono il backup dei database, l'aggiornamento del sistema, l'esecuzione di riavvii periodici e così via. Tali attività in Linux sono indicate come cron jobs (Crontab). I lavori Cron vengono utilizzati per l'automazione delle attività che tornano utili e aiutano a semplificare l'esecuzione di compiti ripetitivi e talvolta banali. Cron è un demone che consente di programmare questi lavori che vengono poi eseguiti a intervalli specificati. In questo tutorial imparerai come pianificare i lavori utilizzando i lavori cron.

Il file Crontab

Un file crontab, noto anche come tabella cron , è un semplice file di testo che contiene regole o comandi che specificano l'intervallo di tempo di esecuzione di un'attività. Esistono due categorie di file crontab:

1)  File crontab a livello di sistema

Questi sono solitamente utilizzati dai servizi Linux e dalle applicazioni critiche che richiedono privilegi di root. Il file crontab di sistema si trova in /etc/crontab e sono accessibili e modificabili solo dall'utente root. Di solito viene utilizzato per la configurazione di demoni a livello di sistema. Il file crontab appare come mostrato:

2) File crontab creati dall'utente

Gli utenti Linux possono anche creare i propri lavori cron con l'aiuto del comando crontab. I lavori cron creati verranno eseguiti come l'utente che li ha creati.

Tutti i lavori cron sono archiviati in /var/spool/cron (per distribuzioni RHEL e CentOS) e /var/spool/cron/crontabs (per distribuzioni Debian e Ubuntu), i lavori cron sono elencati utilizzando il nome utente dell'utente che ha creato il cron lavoro

Il demone cron viene eseguito silenziosamente in background controllando /etc/crontab file e /var/spool/cron e /etc/cron.d*/ directory

Il crontab il comando viene utilizzato per modificare i file cron. Diamo un'occhiata all'anatomia di un file crontab.

L'anatomia di un file crontab

Prima di andare oltre, è importante esplorare come appare un file crontab. La sintassi di base per un file crontab comprende 5 colonne rappresentate da asterischi seguite dal comando da eseguire.

*    *    *    *    *    comando

Questo formato può anche essere rappresentato come mostrato di seguito:

m h d moy dow comando

O

m h d moy dow /percorso/di/script

Esaminiamo ogni voce

  • mi :Rappresenta i minuti. È specificato da 0 a 59
  • h :Indica l'ora specificata da 0 a 23
  • d :  Rappresenta il giorno del mese. Specificato tra 1 e 31`
  • Moy :Questo è il mese dell'anno. È specificato tra 1 e 12
  • ciao :  Questo è il giorno della settimana. È specificato tra 0 e 6 dove 0 =domenica
  • Comando :Questo è il comando da eseguire, ad esempio comando di backup, riavvio e copia

Gestione dei lavori cron

Dopo aver esaminato l'architettura di un file crontab, vediamo come creare, modificare ed eliminare lavori cron

Creazione di lavori cron

Per creare o modificare un lavoro cron come utente root, esegui il comando

# crontab -e

Per creare un processo cron o pianificare un'attività come un altro utente, utilizza la sintassi

# crontab -u nome utente -e

Ad esempio, per eseguire un lavoro cron come utente Pradeep, emettere il comando:

# crontab -u Pradeep -e

Se non esiste un file crontab preesistente, otterrai un documento di testo vuoto. Se esisteva un file crontab, l'opzione -e consente di modificare il file,

Elenco dei file crontab

Per visualizzare i lavori cron che sono stati creati, passa semplicemente l'opzione -l come mostrato

# crontab -l

Eliminazione di un file crontab

Per eliminare un file cron, esegui semplicemente crontab -e ed elimina o la riga del lavoro cron che desideri e salva il file.

Per rimuovere tutti i processi cron, esegui il comando:

# crontab -r

Detto questo, diamo un'occhiata ai diversi modi in cui puoi pianificare le attività

Esempi di Crontab nelle attività di pianificazione.

Tutti i lavori cron sono con un'intestazione shebang come mostrato

#!/bin/bash

Questo indica la shell che stai usando, che, in questo caso, è bash shell.

Quindi, specifica l'intervallo in cui desideri pianificare le attività utilizzando le voci del processo cron che abbiamo specificato in precedenza.

Per riavviare un sistema ogni giorno alle 12:30, utilizzare la sintassi:

30  12 *  *  * /sbin/reboot

Per programmare il riavvio alle 4:00 utilizzare la sintassi:

0  4  *  *  *  /sbin/reboot

NOTA: L'asterisco * viene utilizzato per abbinare tutti i record

Per eseguire uno script due volte al giorno, ad esempio alle 4:00 e alle 16:00, utilizza la sintassi.

0  4,16  *  *  *  /percorso/per/script

Per pianificare l'esecuzione di un processo cron ogni venerdì alle 17:00 utilizza la sintassi:

0  17  *  *  Ven  /percorso/di/script

O

0 17  *  *  *  5  /percorso/per/script

Se desideri eseguire il tuo lavoro cron ogni 30 minuti, usa:

*/30  *  *  *  * /percorso/per/script

Per programmare l'esecuzione di cron ogni 5 ore, esegui

*  */5  *  *  *  /percorso/per/script

Per eseguire uno script in giorni selezionati, ad esempio mercoledì e venerdì alle 18:00, eseguire:

0  18  *  *  mer,ven  /percorso/di/script

Per pianificare più attività per l'utilizzo di un singolo processo cron, separa le attività utilizzando un punto e virgola, ad esempio:

*  *  *  *  *  /percorso/a/script1; /percorso/di/script2

Utilizzo di stringhe speciali per risparmiare tempo nella scrittura di lavori cron

Alcuni dei lavori cron possono essere facilmente configurati utilizzando stringhe speciali che corrispondono a determinati intervalli di tempo. Ad esempio,

1)  @ timestamp orario corrisponde a  0 * * * *

Eseguirà un'attività nel primo minuto di ogni ora.

@oraria /percorso/per/script

2) @daily timestamp equivale a  0 0 * * *

Esegue un'attività nel primo minuto di ogni giorno (mezzanotte). È utile quando si eseguono lavori quotidiani.

@daily /percorso/per/script

3) Il timestamp @weekly   equivale a  0 0 1 * lun

Esegue un processo cron nel primo minuto di ogni settimana, in cui una settimana inizia di lunedì.

@weekly /percorso/per/script

3) @monthly è simile alla voce 0 0 1 * *

Svolge un compito nel primo minuto del primo giorno del mese.

@mensile /percorso/per/script

4) @annuale corrisponde a 0 0 1 1 *

Esegue un compito nel primo minuto di ogni anno ed è utile per inviare gli auguri di Capodanno 🙂

@mensile /percorso/per/script

Restrizioni Crontab

Come utente Linux, puoi controllare chi ha il diritto di usare il comando crontab. Questo è possibile usando /etc/cron.deny e /etc/cron.allow file. Per impostazione predefinita, esiste solo il file /etc/cron.deny e non contiene alcuna voce. Per impedire a un utente di utilizzare l'utilità crontab, aggiungi semplicemente il nome utente di un utente al file. Quando un utente viene aggiunto a questo file e l'utente tenta di eseguire il comando crontab, incontrerà l'errore di seguito.

Per consentire all'utente di continuare a utilizzare l'utilità crontab, rimuovi semplicemente il nome utente dal file /etc/cron.deny.

Se è presente il file /etc/cron.allow, solo gli utenti elencati nel file possono accedere e utilizzare l'utilità crontab.

Se nessuno dei due file esiste, solo l'utente root avrà i privilegi per usare il comando crontab.

Backup delle voci crontab

Si consiglia sempre di eseguire il backup delle voci di crontab. Per farlo, usa la sintassi

# crontab -l> /percorso/del/file.txt

Ad esempio,

# crontab -l > /home/james/backup.txt

Controllo dei log di cron

I registri cron sono archiviati nel file /var/log/cron. Per visualizzare i log di cron eseguire il comando:

# cat /var/log/cron

Per visualizzare i log in tempo reale, usa il comando tail come mostrato:

# tail -f /var/log/cron

Conclusione

In questa guida, hai imparato come creare processi cron per automatizzare attività ripetitive, come eseguire il backup e come visualizzare i registri cron. Ci auguriamo che questo articolo abbia fornito informazioni utili per quanto riguarda i lavori cron. Non esitare a condividere feedback e commenti.


Linux
  1. Suggerimenti Linux per l'utilizzo di cron per pianificare le attività

  2. Come usare cron su Linux

  3. Come uso cron in Linux

  4. Automatizza le attività di sistema con crontab su CentOS 7

  5. Automatizza le attività di sistema utilizzando Crontab su Ubuntu

Che cos'è Crontab e come automatizzare le attività in Linux con Crontab

Come gestire in modo semplice e sicuro i lavori Cron in Linux

Come automatizzare le attività con cron Jobs in Linux

Come pianificare attività su Ubuntu 20.04 utilizzando Crontab

Come automatizzare i lavori giornalieri su Linux usando (at)

Come pianificare i lavori con Cron in Linux