Cron è un'utilità che gestisce di volta in volta processi o demoni in background (ad esempio ogni minuto, giorno, settimana o mese). Cron funziona come uno scheduler, ad esempio, può scaricare file da Internet o scaricare e-mail a intervalli regolari, inoltre puoi usarlo per attività più complesse come l'installazione di aggiornamenti. Originariamente cron è stato creato per UNIX da Ken Thompson, ma ora puoi usarlo in tutti i sistemi simili a UNIX, anche Linux! UNIX ha un'altra utilità per la pianificazione delle attività chiamata "at" ma cron è molto meglio. Ci sono due modi per usare cron, il primo è attraverso le directory cron che si trovano in /etc se apri un terminale e digiti il seguente comando:$ ls /etc/cron* Otterrai il seguente output:

Ora puoi vedere le seguenti directory nell'immagine:cron. ogni giorno, cron. hourly, cron.monthly, cron.weekly e cron.yearly. Queste directory memorizzano gli script che devono essere eseguiti da cron, in base al nome di ogni directory è la frequenza di esecuzione. Ad esempio, gli script archiviati in cron.hourly verranno eseguiti ogni ora.
Ora scriverò un semplice script per fare un backup di una directory e lo metterò su cron. directory oraria per eseguire lo script ogni ora. Una cosa importante che devi considerare è fornire i permessi di esecuzione allo script, perché se non lo fai, cron non eseguirà il file.
L'esempio del processo per aggiungere uno script alle attività cron utilizzando le directory cron globali:
Ho una directory e voglio fare un backup automatico ogni ora:

Scrivo uno script per fare il backup, ho usato nano ma puoi usare il tuo editor preferito:

Provo lo script:

Copio lo script in /etc/cron.hourly:

Do i permessi di esecuzione allo script:

Tutti gli script devono iniziare con la riga #!/bin/sh perché indica la shell da utilizzare. Usa cron attraverso le directory /etc/cron.* non sono molto utili, quindi spiegherò il secondo modo usando crontab.
Se ricordi l'output quando ho elencato il contenuto di /etc/cron* vedrai il seguente file:/etc/crontab
Puoi pianificare attività nel file crontab, ma prima devi imparare quanto segue:

Se analizzi il contenuto del file crontab, puoi identificare 7 campi nelle righe dopo “# run-parts”, intendo quanto segue (la prima riga dopo “# run parts”):
Campo1 | Campo2 | Campo3 | Campo4 | Campo5 | Campo6 | Campo7 |
01 | * | * | * | * | root | bello … |
I primi cinque campi indicano i valori temporali, il sesto campo indica l'utente e il settimo indica il comando da eseguire, quest'ultimo può essere uno script o un comando (uname, ls, apt-get, ecc.). I campi temporali sono i seguenti:
minuto | ora | giorno del mese | mese | giorno della settimana |
01 | * | * | * | * |
Il valore accettato per ogni campo è:
minuto | 00 – 59 |
ora | 00 – 23 |
giorno del mese | 1 – 31 |
mese | 1 – 12 |
giorno della settimana | 1 – 7 (lunedì:1, domenica:7) |
Se il valore di uno di questi campi è "*", significa tutti i valori possibili per il campo corrispondente, ad esempio, * * * * * root /root/script.shQuesta attività verrà eseguita da root ogni minuto, tutti i giorni e tutti i mesi.
Crontab usa stringhe troppo speciali per definire intervalli di frequenza:
@reboot | Una volta dopo l'avvio |
@annuale | Una volta all'anno |
@annualmente | Come @annuale |
@mensile | Una volta al mese |
@settimanale | Una volta alla settimana |
@giornaliero | Quotidiano |
@mezzanotte | Come @daily |
@ogni ora | Oraria |
È sufficiente modificare i campi dell'ora per una delle stringhe speciali e quindi completare il resto, ad esempio @annually root dist-upgrade. Questa attività dovrebbe essere eseguita automaticamente ogni anno.
Ora puoi aggiungere attività a crontab, inoltre puoi creare una directory .scripts nella tua /home e archiviarvi i tuoi script, infine puoi aggiungere una voce per ogni script nel file crontab.
Crontab può gestire un file di attività per ciascun utente, puoi verificare se il tuo utente ha attività crontab utilizzando il seguente comando:

Puoi pianificare le attività in un file, basta crearlo:

Quando hai creato il tuo file crontab, devi caricarlo su cron digitando il comando:
$ crontab your_crontab
Cron è molto potente perché dopo aver caricato un nuovo crontab, non devi fare nulla, tutto qui, cron carica automaticamente nuove attività e file crontab. Il risultato del mio crontab è uno script che crea un file con le date generate ogni minuto:

copione

Il file generato Altre opzioni per crontab sono le seguenti:

Cron è l'utilità di pianificazione delle attività più potente che conosco ed è eccellente perché non è solo per Linux, è per tutti i sistemi simili a UNIX. Se gestisci un server, probabilmente amerai cron, anche se sei un utente comune ti piacerà cron, con cron puoi programmare tutto. Se vuoi saperne di più su cron, dovresti vedere le pagine man:
$ man cron $ man crontab
