Ricerca nel sito web

11 Esempi di attività di pianificazione Cron in Linux


In questo articolo esamineremo e vedremo come possiamo pianificare ed eseguire attività Linux in background automaticamente a intervalli regolari utilizzando il comando Crontab.

Gestire manualmente un lavoro frequente è un compito arduo per gli amministratori di sistema e tali attività possono essere pianificate ed eseguite automaticamente in background senza intervento umano utilizzando il demone cron in un sistema operativo Linux o simile a Unix.

Ad esempio, puoi automatizzare il backup del sistema Linux, pianificare gli aggiornamenti, la sincronizzazione dei file e molto altro utilizzando il demone Cron, utilizzato per eseguire attività pianificate dalla riga di comando oppure utilizzare strumenti online per generare lavori cron.

Cron si sveglia ogni minuto e controlla le attività pianificate in countable – Crontab (CRON TABle) è una tabella in cui possiamo pianificare 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 è composto da comandi per riga e ha sei campi separati da spazi o tabulazioni. I cinque campi iniziali rappresentano il tempo necessario per eseguire le attività e l'ultimo campo è per il comando.

  • Minuto (mantieni valori compresi tra 0-59)
  • Ora (mantieni valori compresi tra 0-23)
  • Giorno del mese (mantieni valori compresi tra 1-31)
  • Il mese dell'anno (mantieni valori compresi tra 1-12 o Gen-Dic, puoi utilizzare le prime tre lettere del nome di ogni mese, ad esempio Jan o Jun.)
  • Giorno della settimana (mantieni valori compresi tra 0-6 o dom-sab. Anche qui puoi utilizzare le prime tre lettere del nome di ogni giorno, ad esempio dom o mer. )
  • Comando: il /percorso/del/comando o lo script che desideri pianificare.

1. Elenca le voci del Crontab

Elenca o gestisci l'attività con il comando crontab con l'opzione -l per l'utente corrente.

crontab -l

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

2. Modifica le voci del Crontab

Per modificare la voce crontab, usa -e l'opzione mostrata sotto. L'esempio seguente aprirà i lavori pianificati nell'editor VI. Apporta le modifiche necessarie e smetti di premere i tasti :wq che salvano automaticamente l'impostazione.

crontab -e

3. Elenca i lavori Cron pianificati dell'utente

Per elencare i lavori pianificati di un particolare utente chiamato tecmint utilizzando l'opzione come -u (Utente) e -l (Elenco).

crontab -u tecmint -l

no crontab for tecmint

Nota: solo l'utente root ha privilegi completi per vedere le voci crontab degli altri utenti. Gli utenti normali non possono visualizzare gli altri.

4. Rimuovere la voce Crontab

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

crontab -r

5. Richiedi prima di eliminare Crontab

crontab con -i l'opzione ti chiederà conferma da parte dell'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 (/): primo campo /10 che significa ogni dieci minuti o incremento dell'intervallo.
  • La virgola (,) – Per separare gli elementi.

7. Pianificazione cron a livello di sistema

Un amministratore di sistema può utilizzare la directory cron predefinita come mostrato di seguito.

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

8. Pianifica un lavoro per un orario specifico

I processi seguenti eliminano file e directory vuoti da /tmp alle 00:30 ogni giorno. È necessario menzionare il nome utente per eseguire il comando crontab. Nell'esempio seguente, l'utente root sta eseguendo un processo cron.

crontab -e

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

9. Stringhe speciali per il programma comune

@reboot

Il comando verrà eseguito al riavvio del sistema.

@daily

Una volta al giorno o può essere utilizzato @mezzanotte.

@weekly

Una volta alla settimana.

@yearly

Una volta all'anno. possiamo usare anche la parola chiave @annually.

È necessario sostituire cinque campi del comando cron con parole chiave se si desidera utilizzare lo stesso.

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

Nell'esempio seguente, comando1 e comando2 vengono eseguiti quotidianamente.

crontab -e

@daily <command1> && <command2>

11. Disabilita notifiche e-mail.

Per impostazione predefinita, cron invia posta all'account utente che esegue cronjob. Se vuoi disabilitarlo aggiungi il tuo lavoro cron in modo simile all'esempio seguente. Utilizzando l'opzione >/dev/null 2>&1 alla fine del file reindirizzerai tutto l'output dei risultati cron in /dev/null.

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

conclusione: l'automazione delle attività può aiutarci a svolgere le nostre attività in modi migliori, senza errori ed efficienti. Puoi fare riferimento a una pagina di manuale di crontab per ulteriori informazioni digitando il comando "man crontab" nel tuo terminale.