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.