GNU/Linux >> Linux Esercitazione >  >> Linux

Che cos'è Crontab e come automatizzare le attività in Linux con Crontab

​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 

Linux
  1. Che cos'è un comando Chown in Linux e come usarlo

  2. Flatpak su Linux:cos'è e come installare app con esso

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

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

  5. Come impostare le attività di automazione su un VPS Linux utilizzando Cron?

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

Cos'è Git e come installare Git in Linux

Come automatizzare le attività con cron Jobs in Linux

Spiegazione di Cron Jobs e Crontab su Linux

Capire Crontab in Linux con esempi

Come pianificare i lavori con Cron in Linux