11 esempi di comandi Cron in Linux [Pianificazione Cron Jobs]

In questo articolo, esamineremo e vedremo come pianificare ed eseguire automaticamente compiti Linux in background a intervalli regolari usando il comando Crontab.

Affrontare manualmente un compito frequente è un compito difficile per gli amministratori di sistema e tali compiti possono essere pianificati ed eseguiti automaticamente in background senza intervento umano utilizzando il demone cron in Linux o in un sistema operativo simile a Unix.

Ad esempio, è possibile automatizzare il backup del sistema Linux, programmare gli aggiornamenti, e sincronizzare i file, e molto altro ancora utilizzando il demone Cron, che serve per eseguire attività pianificate dalla riga di comando o utilizzare strumenti online per generare lavori cron.

Cron si attiva ogni minuto e controlla le attività pianificate in modo contabile – Crontab (CRON TABle) è una tabella in cui possiamo programmare questo tipo di attività ripetute.

Suggerimenti: Ogni utente può avere il proprio crontab per creare, modificare ed eliminare attività. Per impostazione predefinita, cron è abilitato per gli utenti, tuttavia possiamo limitare gli utenti aggiungendo una voce nel file /etc/cron.deny.

Crontab in Linux

Il file Crontab consiste di comandi per riga e ha effettivamente sei campi separati da spazio o tabulazione. I primi cinque campi rappresentano il tempo per eseguire le attività e l’ultimo campo è per il comando.

  • Minuto (valori compresi tra 0-59)
  • Ora (valori compresi tra 0-23)
  • Giorno del mese (valori compresi tra 1-31)
  • Il mese dell’anno (contiene valori tra 1-12 o Gen-Dic, puoi utilizzare le prime tre lettere del nome di ciascun mese, ad esempio Gen o Giu).
  • Giorno della settimana (contiene valori tra 0-6 o Dom-Sab, qui puoi utilizzare le prime tre lettere del nome di ciascun giorno, ad esempio Dom o Mer).
  • Comando – Il percorso/del/comando o script che desideri pianificare.

1. Elenco Voci Crontab

Elencare o gestire il compito con il comando crontab con l’opzione -l per l’utente corrente.

# crontab -l

00 10 * * * /bin/ls >/ls.txt

2. Modifica Voci Crontab

Per modificare l’entrata crontab, utilizza l’opzione -e mostrata di seguito. L’esempio seguente aprirà i lavori programmati nell’editor VI. Apporta le modifiche necessarie e esci premendo i tasti :wq che salveranno automaticamente le impostazioni.

# crontab -e

3. Elenco Lavori Cron Programmati dell’Utente

Per elencare i lavori programmati di un particolare utente chiamato tecmint utilizzando l’opzione -u (Utente) e -l (Lista).

# crontab -u tecmint -l

no crontab for tecmint

Nota: Solo l’utente root ha privilegi completi per vedere le voci crontab di altri utenti. Gli utenti normali non possono visualizzare gli altri.

4. Rimuovere l’Entrata Crontab

Attenzione: Crontab con il parametro -r rimuoverà tutti i lavori programmati senza conferma da Crontab. Utilizza l’opzione -i prima di eliminare il crontab dell’utente.

# crontab -r

5. Prompt Prima di Eliminare il Crontab

crontab con l’opzione -i richiederà conferma dall’utente prima di eliminare il crontab dell’utente.

# crontab -i -r

crontab: really delete root's crontab?

6. Caratteri speciali consentiti (*, -, /, ?, #)

  • Asterisco (*) – Corrisponde a tutti i valori nel campo o a qualsiasi valore possibile.
  • Trattino (-) – Per definire un intervallo.
  • Barra (/) – 1º campo /10 significa ogni dieci minuti o incremento dell’intervallo.
  • La Virgola (,) – Per separare gli elementi.

7. Programmazione del Cron a livello di sistema

A system administrator can use the predefined cron directory as shown below.

  • /etc/cron.d
  • /etc/cron.daily
  • /etc/cron.hourly
  • /etc/cron.monthly
  • /etc/cron.weekly

8. Programmazione di un lavoro per un’ora specifica

I lavori seguenti eliminano file e directory vuoti da /tmp alle 12:30 di notte quotidianamente. È necessario specificare il nome utente per eseguire il comando crontab. Nell’esempio seguente, l’utente root sta eseguendo un lavoro cron.

# crontab -e

30 0 * * *   root   find /tmp -type f -empty -delete

9. Stringhe speciali per la pianificazione comune

Strings Meanings
@reboot The command will run when the system reboots.
@daily Once per day or may use @midnight.
@weekly Once per week.
@yearly Once per year. we can use the @annually keyword also.

È necessario sostituire cinque campi del comando cron con parole chiave se si desidera utilizzarlo.

10. Comandi multipli con doppio e commerciale(&&)

Nell’esempio seguente, command1 e command2 vengono eseguiti quotidianamente.

# crontab -e

@daily <command1> && <command2>

11. Disabilita le notifiche via email.

Per impostazione predefinita, cron invia la posta all’account utente che esegue il cronjob. Se desideri disabilitarlo, aggiungi il tuo cron job simile all’esempio qui sotto. Utilizzando l’opzione >/dev/null 2>&1 alla fine del file, verrà reindirizzato tutto l’output dei risultati del cron sotto /dev/null.

[root@tecmint ~]# crontab -e
* * * * * >/dev/null 2>&1

conclusione: L’automazione dei compiti può aiutarci a svolgere i nostri compiti in modo migliore, senza errori ed efficiente. Puoi fare riferimento alla pagina di manuale di crontab per ulteriori informazioni digitando il comando ‘man crontab‘ nel tuo terminale.

Source:
https://www.tecmint.com/11-cron-scheduling-task-examples-in-linux/