logo

'crontab' in Linux con esempi

IL crontab è un elenco di comandi che si desidera eseguire con una pianificazione regolare e anche il nome del comando utilizzato per gestire tale elenco. Crontab sta per tabella cron, perché utilizza lo scheduler dei lavori cron per eseguire le attività; cron stesso prende il nome da chronos, la parola greca per tempo. cron è il processo di sistema che eseguirà automaticamente le attività per te secondo una pianificazione prestabilita. La pianificazione è chiamata crontab, che è anche il nome del programma utilizzato per modificare quella pianificazione.

Sintassi Crontab di Linux

Il formato Crontab di Linux è rappresentato dalla seguente sintassi:



MIN HOUR DOM MON DOW   CMD>

Analizziamo ciascun campo:

Campo

Descrizione



Valore consentito

MIN (Minuto)

Specifica il minuto in cui verrà eseguito il comando



Varia da 0 a 59.

ORA

Indica l'ora del giorno in cui è prevista l'esecuzione del comando.

Va da 0 a 23.

DOM (giorno del mese)

Specifica il giorno del mese per l'attività.

Va da 1 a 31.

LUN (mese)

Indica il mese durante il quale verrà eseguito il comando.

Varia da 1 a 12.

DOW (giorno della settimana)

Specifica il giorno della settimana per l'attività.

È rappresentato dai numeri da 0 a 6, dove sia 0 che 6 corrispondono alla domenica.

CMD (comando)

Rappresenta il comando o lo script effettivo che verrà eseguito all'orario pianificato.

—————–

Esempi di lavori Cron

1. Pianificazione di un lavoro per un orario specifico

L'utilizzo di base di cron è eseguire un lavoro in un tempo specifico come mostrato di seguito. Ciò eseguirà lo script della shell di backup completo (backup completo) il 10 giugno alle 08:30. Il campo dell'ora utilizza il formato 24 ore. Quindi, per le 8:00 usa 8 e per le 20:00 usa 20.

30 08 10 06 * /home/maverick/full-backup>

30 – 30° Minuto 08 – 08 AM 10 – 10° Giorno 06 – 6° Mese (Giugno) * – Tutti i giorni della settimana

2. Per visualizzare le voci del Crontab

  • Visualizza le voci Crontab dell'utente attualmente connesso: per visualizzare le voci Crontab digita crontab -l dal tuo account Unix.
  • Visualizza le voci Root Crontab: accedi come utente root (su – root) ed esegui crontab -l.
  • Per visualizzare le voci crontab di altri utenti Linux: Accedi a root e usa -u {nomeutente} -l.

3. Per modificare le voci del Crontab Modifica le voci del Crontab dell'utente correntemente connesso.

Per modificare le voci di un crontab, utilizzare crontab -e. Per impostazione predefinita, questo modificherà il crontab degli utenti attualmente registrati.

4. Per pianificare un lavoro per ogni minuto utilizzando Cron.

Idealmente potresti non avere l'obbligo di pianificare un lavoro ogni minuto. Ma comprendere questo esempio ti aiuterà a comprendere gli altri esempi.

* * * * * CMD>

Il * indica tutte le unità possibili, ovvero ogni minuto di ogni ora durante tutto l'anno. Più che usare questo * direttamente, lo troverai molto utile nei seguenti casi. Quando si specifica */5 nel campo dei minuti significa ogni 5 minuti. Quando specifichi 0-10/2 nel campo dei minuti, significa ogni 2 minuti nei primi 10 minuti. Pertanto la convenzione di cui sopra può essere utilizzata per tutti gli altri 4 campi.

5. Per pianificare un lavoro per più di una volta (ad esempio due volte al giorno)

Il seguente script esegue un backup incrementale due volte al giorno ogni giorno. In questo esempio viene eseguito lo script della shell di backup incrementale specificato (backup incrementale) alle 11:00 e alle 16:00 di ogni giorno. Il valore separato da virgole in un campo specifica che il comando deve essere eseguito entro tutto il tempo indicato.

00 11, 16 * * * /home/maverick/bin/incremental-backup>

00 – 0° minuto (inizio dell'ora) 11, 16 – 11:00 e 16:00 * – Ogni giorno * – Ogni mese * – Ogni giorno della settimana

6. Per pianificare un lavoro per un determinato intervallo di tempo (ad esempio, solo nei giorni feriali)

Se desideri che un lavoro venga pianificato per ogni ora in un intervallo di tempo specifico, utilizza quanto segue.

  • Cron Job tutti i giorni durante l'orario di lavoro: questo esempio controlla lo stato del database tutti i giorni (compresi i fine settimana) durante l'orario di lavoro dalle 9:00 alle 18:00
00 09-18 * * * /home/maverick/bin/check-db-status>
  • 00 – 0° minuto (inizio dell'ora) 09-18 – 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 * – Tutti i giorni * – Ogni mese * – Tutti i giorni della settimana
  • Cron Job ogni giorno feriale durante l'orario lavorativo: questo esempio controlla lo stato del database ogni giorno feriale (esclusi sabato e domenica) durante l'orario lavorativo dalle 9:00 alle 18:00.
00 09-18 * * 1-5 /home/maverick/bin/check-db-status>
  • 00 – 0° minuto (inizio dell'ora) 09-18 – 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 * – Tutti i giorni * – Ogni mese 1-5 - lunedì, martedì, mercoledì, giovedì e venerdì (tutti i giorni feriali)

7. Per pianificare un lavoro Cron in background ogni 10 minuti.

Utilizzare quanto segue se si desidera controllare lo spazio su disco ogni 10 minuti.

arp-un comando
*/10 * * * * /home/maverick/check-disk-space>

Esegue il comando specificato check-disk-space ogni 10 minuti durante tutto l'anno. Ma potresti avere l'obbligo di eseguire il comando solo in determinate ore o viceversa. Gli esempi sopra mostrano come fare queste cose. Invece di specificare valori nei 5 campi, possiamo specificarli utilizzando una singola parola chiave come menzionato di seguito. Esistono casi speciali in cui invece dei 5 campi precedenti è possibile utilizzare @ seguito da una parola chiave, ad esempio riavvio, mezzanotte, annuale, orario. Parole chiave speciali Cron e il loro significato

Keyword Equivalent @yearly 0 0 1 1 * @daily 0 0 * * * @hourly 0 * * * * @reboot Run at startup.>

8. Per pianificare un lavoro per il primo minuto di ogni anno utilizzando @yearly

Se desideri che un lavoro venga eseguito il primo minuto di ogni anno, puoi utilizzare la parola chiave cron @yearly come mostrato di seguito. Ciò eseguirà la manutenzione annuale del sistema utilizzando lo script di shell di manutenzione annuale alle 00:00 del 1° gennaio per ogni anno.

@yearly /home/maverick/bin/annual-maintenance>

9. Per pianificare un lavoro Cron all'inizio di ogni mese utilizzando @monthly

È simile a @yearly come sopra. Ma esegue il comando mensilmente una volta utilizzando la parola chiave cron @monthly. Ciò eseguirà il backup su nastro dello script di shell alle 00:00 del primo di ogni mese.

@monthly /home/maverick/bin/tape-backup>

10. Per pianificare un lavoro in background ogni giorno utilizzando @daily

Utilizzando la parola chiave @daily cron, verrà eseguita una pulizia giornaliera del file di registro utilizzando lo script di shell cleanup-logs alle 00:00 di ogni giorno.

@daily /home/maverick/bin/cleanup-logs 'day started'>

11. Per eseguire un comando Linux dopo ogni riavvio utilizzando @reboot

Usando la parola chiave cron @reboot, questo eseguirà il comando specificato una volta dopo ogni avvio della macchina.

@reboot CMD>