GNU/Linux >> Linux Esercitazione >  >> Linux

Come automatizzare le attività con cron Jobs in Linux

Se lavori nel settore IT, potrebbe essere necessario pianificare varie attività ripetitive come parte dei processi di automazione.

Ad esempio, è possibile pianificare l'esecuzione periodica di un determinato lavoro in orari specifici della giornata. Ciò è utile per eseguire backup giornalieri, archiviazione di registri mensili, eliminazione settimanale di file per creare spazio e così via.

E se usi Linux come sistema operativo, utilizzerai qualcosa chiamato cron job per farlo accadere.

Cos'è un cron?

Cron è un'utilità di pianificazione dei lavori presente in sistemi simili a Unix. Il demone crond abilita la funzionalità cron e viene eseguito in background. Il cron legge il crontab (tabelle cron) per eseguire script predefiniti.

Utilizzando una sintassi specifica, puoi configurare un processo cron per pianificare script o altri comandi da eseguire automaticamente.

Per i singoli utenti, il servizio cron controlla il seguente file:/var/spool/cron /crontabs

Cosa sono i lavori cron in Linux?

Qualsiasi attività pianificata tramite cron è chiamata cron job. I lavori Cron ci aiutano ad automatizzare le nostre attività di routine, siano esse orarie, giornaliere, mensili o annuali.

Ora, vediamo come funzionano i lavori cron.

Come controllare l'accesso ai crons

Per utilizzare i lavori cron, un amministratore deve consentire l'aggiunta di lavori cron per gli utenti nel file '/etc/cron.allow'.

Se ricevi un messaggio come questo, significa che non hai il permesso per usare cron.

Per consentire a John di usare crons, includi il suo nome in '/etc/cron.allow'. Ciò consentirà a John di creare e modificare lavori cron.

Agli utenti può anche essere negato l'accesso all'accesso al lavoro cron inserendo i loro nomi utente nel file '/etc/cron.d/cron.deny'.

Come aggiungere lavori cron in Linux

Innanzitutto, per utilizzare i lavori cron, dovrai controllare lo stato del servizio cron. Se cron non è installato, puoi scaricarlo facilmente tramite il gestore pacchetti. Usa questo per controllare:

# Check cron service on Linux system
sudo systemctl status cron.service

Sintassi del lavoro Cron

Crontabs utilizza i seguenti flag per aggiungere ed elencare i lavori cron.

  • crontab -e :modifica le voci crontab per aggiungere, eliminare o modificare i lavori cron.
  • crontab -l :elenca tutti i lavori cron per l'utente corrente.
  • crontab -u username -l : elenca i cron di un altro utente.
  • crontab -u username -e : modifica i cron di un altro utente.

Quando elenchi i cron, vedrai qualcosa del genere:

# Cron job example
* * * * * sh /path/to/script.sh

Nell'esempio sopra,

  • * * * * * rappresenta rispettivamente minuto/i ora/i giorno/i mese/i giorno/i della settimana.
Valore Descrizione
Minuti 0-59 Il comando verrebbe eseguito al minuto specifico.
Ore 0-23 Il comando verrebbe eseguito all'ora specifica.
Giorni 1-31 I comandi verrebbero eseguiti in questi giorni dei mesi.
Mesi 1-12 Il mese in cui devono essere eseguite le attività.
Giorni feriali 0-6 Giorni della settimana in cui verrebbero eseguiti i comandi. Qui, 0 è domenica.
  • sh rappresenta che lo script è uno script bash e deve essere eseguito da /bin/bash .
  • /path/to/script.sh specifica il percorso dello script.

Di seguito è riportato il riepilogo della sintassi del lavoro cron.

*   *   *   *   *  sh /path/to/script/script.sh
|   |   |   |   |              |
|   |   |   |   |      Command or Script to Execute        
|   |   |   |   |
|   |   |   |   |
|   |   |   |   |
|   |   |   | Day of the Week(0-6)
|   |   |   |
|   |   | Month of the Year(1-12)
|   |   |
|   | Day of the Month(1-31)  
|   |
| Hour(0-23)  
|
Min(0-59)

Esempi di lavoro Cron

Di seguito sono riportati alcuni esempi di pianificazione dei lavori cron.

Programma Valore programmato
5 0 * 8 * Alle 00:05 di agosto.
5 4 * * 6 Alle 04:05 di domenica.
0 22 * ​​* 1-5 Alle 22:00 di tutti i giorni della settimana dal lunedì al venerdì.

Va bene se non sei in grado di capirlo tutto in una volta. Puoi esercitarti e generare pianificazioni cron con il crontab guru.

Come impostare un lavoro cron

In questa sezione, esamineremo un esempio di come pianificare un semplice script con un processo cron.

  1. Crea uno script chiamato date-script.sh che stampa la data e l'ora del sistema e la aggiunge a un file. Lo script è mostrato di seguito:

2. Rendi eseguibile lo script assegnandogli i diritti di esecuzione.

chmod 775 date-script.sh

3. Aggiungi lo script nel crontab usando crontab -e .

Qui, abbiamo programmato che venga eseguito al minuto.

4. Controllare l'output del file date-out.txt . Secondo lo script, la data di sistema dovrebbe essere stampata su questo file ogni minuto.

Come risolvere i problemi dei cron

I Cron sono davvero utili, ma potrebbero non funzionare sempre come previsto. Fortunatamente, ci sono alcuni metodi efficaci che puoi usare per risolverli.

  1. Controlla il programma.

Innanzitutto, puoi provare a verificare la pianificazione impostata per il cron. Puoi farlo con la sintassi che hai visto nelle sezioni precedenti.

2. Controlla i log di cron.

Per prima cosa devi verificare se il cron è stato eseguito all'ora prevista o meno. Puoi verificarlo dai registri cron che si trovano in var/log/cron . In alcune distribuzioni, i log possono essere trovati in /var/log/syslog

Se c'è una voce in questi log al momento giusto, significa che il cron è stato eseguito secondo la pianificazione che hai impostato.

Di seguito sono riportati i registri del nostro esempio di lavoro cron. Nota la prima colonna che mostra il timestamp. Il percorso dello script è menzionato anche alla fine della riga.

3. Reindirizza l'output di cron su un file.

Puoi reindirizzare l'output di un cron su un file e controllare il file per eventuali errori.

# Redirect cron output to a file
* * * * * sh /path/to/script.sh &> log_file.log

Conclusione

L'automazione delle attività, come con i lavori cron, riduce il lavoro ripetitivo che devi eseguire. Consente inoltre alle macchine di ripararsi automaticamente e lavorare 24 ore su 24 senza l'intervento umano.

L'automazione in Linux si basa fortemente sui lavori cron, quindi dovresti assolutamente imparare cron e sperimentarli.

Grazie per aver letto fino alla fine. Il feedback è sempre il benvenuto.

Se hai trovato utile questo articolo, condividilo con i tuoi amici.

Connettiamoci su Twitter!


Linux
  1. Pianificazione delle attività con il comando cron di Linux

  2. Come uso cron in Linux

  3. Pianificazione delle attività di sistema con Cron su Linux

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

  5. Come pianificare i lavori Cron con Crontab

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

Come proteggere i server Linux con SE Linux

Come visualizzare o elencare i lavori Cron in Linux

Come automatizzare i lavori giornalieri su Linux usando (at)

Cron Vs Anacron:come configurare Anacron su Linux (con un esempio)

Come pianificare i lavori con Cron in Linux