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.shDove:
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 ScrotPer 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:
La voce di Crrontab di seguito prenderà lo screenshot una volta su ogni riavvio:
@reboot scrotPuoi 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:
* * * * * ScrotOgni ora:
0 * * * * ScrotOgni giorno alle 18:00:
0 18 * * * ScrotOgni mese il 6 alle 18:00:
0 18 6 * * ScrotUsa "/" 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 * * * * ScrotVerificare 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.