Come configurare i lavori Cron in Linux

Come configurare i lavori Cron in Linux
Automatizzare e pianificare attività ripetute su desktop e server migliorano la produttività e riduce l'intervento manuale e il monitoraggio. Numerosi strumenti di questo tipo sono disponibili per Linux e uno dei più utilizzati tra questi è "cron".

Questo articolo spiegherà le attività di pianificazione e l'esecuzione di script a intervalli regolari utilizzando Cron Jobs.

Cos'è Cron?

Cron è un programma di pianificazione delle attività che funziona in background come processo. Può essere utilizzato per eseguire periodicamente determinati lavori programmati utilizzando il suo set di regole predefiniti. Cron viene preinstallato sulla maggior parte delle distribuzioni Linux o disponibile nei repository da installare manualmente.

Predefiniti cron

Cron su Ubuntu viene fornito con una serie di programmi predefiniti. Puoi controllarli eseguendo il comando qui sotto:

$ ls /etc /cron.*

Di solito queste cartelle sono “/etc/cron.ogni ora ","/etc/cron.ogni giorno ","/etc/cron.mensile "e"/etc/cron.settimanalmente".

Inserisci le tue sceneggiature desiderate in una di queste cartelle per eseguire attività automatizzate ogni ora, ogni giorno, mensile o settimanale.

Si noti che Cron utilizza la shell "/bin/sh" per impostazione predefinita. Se vuoi usare "/bin/bash" come shell negli script di Cron, devi usare "!#/bin/bash ”hashbang nella parte superiore del file di script o definisce shell come variabile“ shell =/bin/bash ”nella prima riga in uno script Bash programmato. La variabile di ambiente "shell" prevalente funziona anche per l'editor di crontab spiegato di seguito.

Non tutte le variabili di ambiente di sistema possono essere esposte ai lavori Cron. Quindi è generalmente una buona idea definire manualmente importanti variabili di ambiente in uno script programmato da Cron.

Crrontab

Crrontab ti consente di definire le tue attività programmate. È possibile utilizzarlo per configurare i programmi Cron diversi dai quattro preset Cron standard spiegati sopra.

Per impostare un'attività programmata in CRTATB, avviare prima l'editor Crrontab utilizzando il comando di seguito:

$ crontab -e

Ora alla fine del file, puoi aggiungere una voce nel seguente formato:

Minute Hour Day Mese Weekday/Full/Path/To/Script.sh

Dove:

  • Minute: qualsiasi valore nell'intervallo da 0 a 59
  • Ora: qualsiasi valore nell'intervallo da 0 a 23, 0 essendo mezzanotte
  • Giorno: qualsiasi valore nell'intervallo da 1 a 31
  • Mese: qualsiasi valore nell'intervallo da 1 a 12
  • giorni feriali: qualsiasi valore nell'intervallo da 0 a 6, 0 essendo domenica

La voce di Crrontab di seguito prenderà uno screenshot del tuo desktop e lo memorizzerà nella tua directory di casa una volta alle 15:13 ore il 2 marzo più martedì di marzo alle 15:13.

13 15 2 3 2 Scrot

Per elencare tutte le voci di Crrontab, utilizzare il comando di seguito:

$ crontab -l

Altri esempi

Le attività di Cron possono essere spiegate al meglio attraverso esempi, quindi di seguito sono riportati alcuni esempi che prendono periodicamente screenshot del tuo desktop e le memorizzeranno nella cartella domestica.

Oltre alle cinque variabili di pianificazione, Cron utilizza anche una stringa speciale per programmare i lavori. Queste stringhe sono:

  • @Hourly: il lavoro viene eseguito ogni ora
  • @daily / @midnight: il lavoro viene eseguito ogni giorno
  • @Weekly: il lavoro funziona una volta alla settimana
  • @Monthly: il lavoro funziona una volta al mese
  • @antly / @anual: lavoro funziona una volta all'anno
  • @Reboot: il lavoro esegue una volta ogni riavvio / accesso

La voce di Crrontab di seguito prenderà lo screenshot una volta su ogni riavvio:

@reboot scrot

Puoi sostituire "@reboot" con qualsiasi altra stringa speciale sopra menzionata.

L'uso di un asterisco o un jolly al posto di una delle cinque variabili ripeterà il lavoro su tutte le nuove istanze di quella variabile. La voce seguente prenderà uno screenshot ogni minuto:

* * * * * Scrot

Ogni ora:

0 * * * * Scrot

Ogni giorno alle 18:00:

0 18 * * * Scrot

Ogni mese il 6 alle 18:00:

0 18 6 * * Scrot

Usa "/" per eseguire uno script ad un intervallo periodico fisso di 30 minuti (funziona ogni 30 minuti):

*/30 * * * * Scrot

È possibile utilizzare variabili separate da virgola per definire l'esecuzione ripetuta dello script a intervalli regolari. L'esempio seguente prenderà uno screenshot del tuo desktop ogni 1 °, 4 ° e 5 ° minuto di una nuova ora.

1,4,5 * * * * Scrot

Verificare le voci di Crrontab

Definire le voci di crontab può essere complicato, ma il debug o la verifica se lavorano ai timestamp corretti è ancora più complicato. Un'opzione è quella di utilizzare una macchina virtuale e registrare i timestamp di uno script in esecuzione periodicamente su un lavoro Cron includendo qualcosa come "Data" e reindirizzando l'output in un file di testo. Tuttavia, una soluzione migliore è utilizzare uno dei numerosi servizi di test dei lavori Cron online disponibili sul Web. Ti consiglio di dare un sito Web Cron Tester disponibile qui.

Conclusione

Eseguire i lavori Cron è un modo eccellente per automatizzare le attività ripetute, specialmente sui server. Lo strumento è estremamente potente e personalizzabile. Tuttavia, è importante accertare che la definizione del tuo programma di programmazione funzioni correttamente, soprattutto se ci sono compiti mission -critical.