Approfitta del comando crontab Linux per automatizzare varie attività banali e ripetitive, semplificandoti la vita. Questo strumento eccellente e facile da usare, combinato con alcuni script, non solo può automatizzare tutti i tipi di attività, ma aiuta anche a evitare semplici errori umani o dimenticanze.

Qui imparerai cos'è crontab, come aggiungere lavori automatizzati e alcuni esempi del mondo reale.

Cos'è Crontab?

Crontab è un processo daemon che viene eseguito in background su quasi tutte le macchine Linux e viene utilizzato per pianificare ed eseguire attività automatizzate a intervalli di tempo prestabiliti. Viene anche spesso utilizzato dagli sviluppatori di software per eseguire attività che richiedono tempo in background.

Questo può essere qualsiasi cosa, incluso ma non limitato all'invio di e-mail in batch, al controllo del feed di Twitter, all'esecuzione di backup o semplicemente all'esecuzione di un promemoria.

Comandi Crontab di base

Ogni utente Linux sulla macchina ha il proprio file crontab, che contiene i lavori crontab attivi. Ecco alcuni comandi di terminale di base che utilizzerai per visualizzare e modificare il file crontab:

instagram viewer

  • crontab-l Elenca tutti i lavori di crontab.
  • crontab -e Modifica il file crontab.
  • crontab -r Rimuovi tutte le voci dal file crontab.

I comandi di cui sopra saranno per il utente corrente file crontab. Se è necessario modificare il file crontab di un utente diverso, è sufficiente utilizzare il file -u opzione. Ad esempio, puoi modificare il file jdoe file crontab dell'utente con il comando:

Ubuntu Linux: aggiungi e rimuovi utenti dai gruppi in modo semplice

Vuoi gestire meglio gli utenti su Ubuntu Linux? La risposta è creare gruppi, quindi utilizzare la funzione di aggiunta utente di Ubuntu.

sudo crontab -ujdoe -e

Formato dei lavori Crontab

Ogni lavoro crontab è composto da una riga ed è formattato come di seguito:

MINUTO ORA GIORNO MESE GIORNO DELLA SETTIMANA COMANDO

La tabella seguente spiega i diversi elementi del lavoro crontab:

Elemento Ranage Descrizione
Minuto 0 - 59 Il minuto in cui eseguire il lavoro crontab su.
Ora 0 - 23 L'ora in cui eseguire il lavoro crontab alle.
Giorno 1 - 31 Il giorno del mese in cui eseguire il lavoro crontab.
Mese 1 - 12 Il mese in cui eseguire il lavoro crontab in.
Giorno feriale 0 - 6 Il giorno della settimana in cui eseguire il lavoro crontab.
Comando Qualsiasi comando Linux che puoi eseguire sul terminale.

È possibile utilizzare un asterisco (*) in uno qualsiasi dei campi per indicare un carattere jolly, il che significa che il lavoro crontab verrà eseguito indipendentemente da quel periodo di tempo. Ad esempio, il lavoro crontab seguente verrà eseguito ogni notte esattamente alle 3:20:

20 3 * * * /root/backup.sh

Valori multipli

Ogni periodo di tempo può anche includere più elementi. È possibile specificare i valori esatti separandoli con una virgola e il lavoro crontab seguente verrà eseguito ogni ora a 20 e 50 minuti dopo l'ora:

20,50 * * * * /path/to/command.sh

Tuttavia, se si desidera eseguire il lavoro crontab a intervalli specifici entro un periodo di tempo, è possibile utilizzare */PERIODOe il lavoro crontab di seguito verrà eseguito automaticamente 15 minuti dopo l'ora ogni tre ore:

15 * / 3 * * * /path/to/command.sh

Mantenere i lavori di Crontab silenziosi

A seconda, potresti voler eliminare tutto l'output dai lavori crontab in modo che non finiscano nella cartella di posta del tuo sistema. Puoi farlo aggiungendo > / dev / null 2> & 1 a qualsiasi lavoro crontab. Per esempio:

0 6 15 * * /path/to/backup.sh> / dev / null 2> & 1

Aggiunta di lavori Crontab

Generalmente, il metodo più utilizzato per aggiungere o modificare lavori crontab è il crontab -e comando. Esegui questo comando nel terminale:

crontab -e

Questo aprirà un file editor di testo ad esempio nano con il contenuto del tuo file crontab. Ogni lavoro crontab risiede su una riga e puoi aggiungere, modificare e rimuovere righe come desideri. Una volta fatto, salva e chiudi il file premendo Ctrl + W, seguito dal Y e accedere keys, che attiveranno immediatamente tutti i lavori crontab all'interno del file.

Scorciatoia per aggiungere lavori

Invece di modificare manualmente il file crontab, c'è un singolo comando rapido che puoi eseguire per aggiungere un lavoro. Ad esempio, se desideri aggiungere questo lavoro crontab che viene eseguito ogni domenica alle 14:00:

0 14 * * 0 /path/to/command.sh

Puoi aggiungere il lavoro al tuo file crontab con il singolo comando:

(crontab -l; echo "0 14 * * 0 /path/to/command.sh";) | crontab

Il comando precedente elenca semplicemente tutti i lavori attualmente nel tuo file crontab, stampa il nuovo lavoro e convoglia tutto in crontab sostituendone il contenuto.

Elenco / rimozione del file Crontab

Puoi elencare tutti i lavori attualmente attivi nel tuo file crontab con il comando:

crontab -l

Puoi anche rimuovere tutti i lavori crontab e svuotare il contenuto del tuo file crontab con il comando:

crontab -r

Esempio: riproduci suoni!

Hai bisogno di un rapido promemoria ogni due ore mentre lavori per farti sapere che il tempo è passato? Prendi la tua clip audio preferita in quasi tutti i formati (.wav, .mp4, qualsiasi cosa) e se è salvata in (ad esempio) /home/myuser/myalert.wav farlo giocare automaticamente con il lavoro crontab:

0 * / 2 * * * aplay /home/myuser/myalert.wav

Che ne dici di darti un bel saluto dal lavoro della settimana con la tua canzone preferita che suona automaticamente alle 17:00 ogni venerdì pomeriggio? Prendi la clip della tua canzone preferita e, se salvata, ad esempio /home/myuser/friday_song.mp4 dovresti aggiungere il lavoro crontab:

0 17 * * 5 aplay /home/myuser/friday_song.mp4

Esempio: file di backup con Rsync

Uno dei tanti usi eccellenti di crontab è la capacità di eseguire automaticamente il backup dei file su un server remoto. Riduci sostanzialmente il rischio di perdere di nuovo dati importanti con questo ottimo tutorial su rsync.

Esempio: controlla se i siti sono online

Forse vuoi controllare automaticamente ogni cinque minuti se vari siti sono online e ricevere una notifica via e-mail se qualcuno non funziona. Ecco un piccolo e ingegnoso script PHP che farà proprio questo.


php
// Indirizzo e-mail per la notifica di siti inattivi
$ email = '[email protected]';
// Definisci URL da controllare
$ urls = [< br /> " https://apexpl.io',
'https://google.com',
'https://some-junk-site-that-will-hopefully-never-exist.com'
];
// Passa attraverso gli URL
$ down = [];
foreach ($ urls as $ url) {
// Controlla URL
$ status = check_url ($ url);
if ($ status! = 200) {
$ down [] = $ url;
}
}
// Invia e-mail se abbiamo siti inattivi
if (count ($ down)> 0) {
mail ($ email, "Urgente - Siti inattivi!", "Il tuo bot ha rilevato che i seguenti siti sono attualmente inattivo:
". implode ("
", $ down));
}
// Exit
exit (0);
/ **
* Controlla URL < br /> * /
funzione check_url (stringa $ url): int
{
// Invia tramite cURL
$ ch = curl_init ();
curl_setopt ($ ch, CURLOPT_URL, $ url);
curl_setopt ($ ch, CURLOPT_FRESH_CONNECT, true);
curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, true); < > curl_setopt ($ ch, CURLOPT_FOLLOWLOCATION, true);
$ response = curl_exec ($ ch);
// Ottieni lo stato e chiudi la connessione
$ status = curl_getinfo ($ ch, CURLINFO_HTTP_CODE);
curl_close ($ ch);
// Return
return $ status;
}

Modifica semplicemente l'indirizzo e-mail e gli URL desiderati da controllare all'inizio del file e salva da qualche parte come /home/myuser/check_sites.php . Per fare in modo che questo script venga eseguito ogni cinque minuti e ti invii una notifica via e-mail per qualsiasi sito non attivo, aggiungi il lavoro crontab:

  * / 5 * * * * / usr / bin / php /home/myuser/check_sites.php> / dev / null 2> & 1  

Automatizza la tua vita!

Con questo articolo tu si spera abbia capito il potere di automazione di crontab e come può essere utilizzato per automatizzare molte delle attività banali e ripetitive nel tuo vita.

Hai imparato cos'è crontab, riguardo al file crontab, come sono formattati i lavori crontab e alcuni esempi del mondo reale di come può essere utilizzato.

4 App di automazione Linux per semplificare attività e flussi di lavoro

Vuoi risparmiare tempo ed evitare attività ripetitive? La risposta è l'automazione! Ecco alcune utili app di automazione desktop Linux da provare.

Correlate Argomenti
  • Programmazione
  • Linux
Informazioni su L'autore
Matt Dizak (13 articoli Pubblicato)
Altro da Matt Dizak

Iscriviti al nostro Newsletter

Iscriviti alla nostra newsletter per suggerimenti tecnici, recensioni, ebook gratuiti e offerte esclusive!

Un passo in più!!!

Conferma il tuo indirizzo email nel file email che ti abbiamo appena inviato.

.