Il comando crontab di Linux viene utilizzato per pianificare i lavori cron. Un cron job è un pratico strumento di automazione che consente agli utenti Linux di eseguire attività automatizzate a periodi o intervalli specifici.
Questo è un modo amichevole per pianificare attività che altrimenti sarebbero noiose se gestite manualmente. I processi Cron vengono solitamente utilizzati dagli amministratori di sistema per automatizzare attività come backup del server, riavvii, invio di notifiche e pulizie per citarne solo alcuni.
Un lavoro cron viene eseguito silenziosamente in background, controllando il /etc/crontab
file e /var/spool/cron
e /etc/cron.*/
directory. In questo articolo imparerai come creare e gestire cron job nel tuo sistema Linux.
Struttura del lavoro Linux Cron
L'anatomia di un processo cron è mostrata di seguito.
* * * * * COMMAND arg1 arg2
O
* * * * * /path/to/script arg1 arg2
Da sinistra,
The 1st entry represents Minutes [0 - 59]
The 2nd entry represents Hours [0 - 24]
The 3rd entry represents Days [0 - 31]
The 4th entry represents Months [0 - 12]
The 5th entry represents Days of the week [0 - 7]
Esempio crontab Linux
Ora che hai lo scheletro per un crontab, scriverne uno è abbastanza facile a condizione che tu conosca il comando o il percorso del tuo script.
In questo esempio creeremo un crontab per riavviare un sistema Linux.
vim reboot.sh
Copia e incolla il contenuto qui sotto nel file bash.
#!/bin/bash
0 3 * * * /sbin/reboot
Seguendo la sintassi crontab come indicato in precedenza, il lavoro cron verrà eseguito ogni giorno alle 3:00 e riavviare il sistema.
Salva ed esci dall'editor di testo.
Quindi, assegna le autorizzazioni di esecuzione come mostrato.
# chmod +x reboot.sh
Per verificare le autorizzazioni dei file, esegui:
# ls -l reboot.sh
Per inizializzare l'esecuzione di crontab
# crontab reboot.sh
Se vuoi visualizzare il contenuto di un crontab di un utente che è attualmente connesso utente esegui il comando.
crontab -l
Con crontab attivo e funzionante, crontab verrà eseguito all'ora stabilita, ovvero le 3:00 ora locale.
Per rimuovere tutti i lavori cron nel sistema, usa il -r
opzione.
crontab -r
Ulteriori esempi di esecuzione di lavori cron a determinati intervalli di tempo
- Per eseguire un processo cron ogni minuto , esegui
* * * * * COMMAND
Se l'ora corrente è 6:00, il processo cron verrà eseguito alle 6:01, 6:02 e così via.
- Per eseguire un processo cron dopo ogni ennesimo minuto , ad esempio ogni 10 minuti, esegui
*/10 * * * * COMMAND
- Per eseguire un processo cron ogni ennesimo minuto di ogni ora , ad esempio ogni 30 minuti di ogni ora, esegui
30 * * * * COMMAND
- Per eseguire un cron job ogni ora , ovvero ogni 0 minuti, esegui
0 * * * * COMMAND
- Per eseguire un processo cron dopo ogni n ore , ad esempio, dopo ogni 6 ore, esegui
0 */6 * * * COMMAND
- Per eseguire un processo cron in un giorno specifico , diciamo venerdì, esegui
0 0 * * FRI COMMAND
- Se desideri eseguire un cron job dal lunedì al venerdì esegui
0 0 * * 1-5 COMMAND
Questo esegue il comando alle ore 00:00 tutti i giorni dal lunedì al venerdì.
- Per eseguire un cron job ogni giorno , esegui
0 0 * * * COMMAND
- Per eseguire un cron job ogni primo giorno di ogni mese
0 0 1 * * COMMAND
- Per eseguire un processo cron ogni primo giorno del mese a un'ora specifica , diciamo 20:30 ore, esegui
30 20 1 * * COMMAND
- Per eseguire un lavoro ogni trimestre dell'anno, ovvero il 1° giorno dopo ogni 3 mesi, esegui
0 0 1 */3 * COMMAND
- Per eseguire un cron job ogni anno , esegui
0 0 1 1 * COMMAND
Questo processo cron verrà eseguito ogni venerdì esattamente alle 00:00 mezzanotte.
Pianificazione dei lavori cron utilizzando Crontab Guru
Le sintassi di Crontab possono essere piuttosto confuse e difficili da padroneggiare. Ma non preoccuparti. Crontab Guru è uno strumento online molto amichevole che ti aiuta a definire perfettamente i tuoi intervalli di tempo senza troppi problemi. È un'interfaccia web che ha gli intervalli di tempo di crontab ben etichettati e tutto ciò che è richiesto è che tu scriva le cifre nel campo di testo mentre lo strumento interpreta crontab. Nell'esempio seguente, lo strumento ha generato crontab per automatizzare un processo cron ogni 6:00 dal lunedì al sabato.