Linux Crontab con lavori Cron di esempio
Il file Crontab memorizza i lavori cron in Linux. I lavori cron (cron) vengono eseguiti periodicamente a orari, date e intervalli fissi. Il suo equivalente in Windows è l’attività pianificata. Tutte le attività ripetitive possono essere pianificate utilizzando cron.
Il file Crontab è il file di configurazione che contiene informazioni sull’ora e sul comando/script da eseguire.
In questo tutorial impariamo crontab di Linux insieme a esempi a pianificare i lavori.
Sintassi Crontab
Ogni riga nel file crontab rappresenta un lavoro. Contenere cinque campi seguito da A comando o script di shell eseguire.
Sintassi:
* (Minute) *(Hour) * (Day of the Month) *(Month of the Year) *(Day of the Week) username <path to command/script to execute
>
* | Minuto | Questo valore di campo è compreso tra 0 e 59 |
* | Ora | Questo valore di campo è compreso tra 0 e 23 |
* | giorno del mese | Questo valore di campo è compreso tra 1 e 31 |
* | Mese dell’anno | Il valore di questo campo è compreso tra 1 e 12. Sono accettati anche i primi 3 alfabeti del mese, ad esempio Jan, Feb, Mar |
* | Giorno della settimana | Questo valore di campo è compreso tra 0 e 7. Dove 0 e 7 è domenica. 1 è lunedì, 2 è martedì, come saggio |
Definire più valori o intervalli
Per definire più valori e intervalli, utilizzare la virgola (,) e il trattino (-). asterisco
va con tutto. Ad esempio, per visualizzare più valori, utilizzare 1,2,3 o Lun,Mar,Mer e per gli intervalli è possibile utilizzare 1-3 o Lun-Mer.
Come usare crotab crontab
Il comando viene utilizzato per aprire e modificare/aggiungere lavori cron. Il demone cron in esecuzione su Linux esegue lavori pianificati all’ora definita nel crontab (tabella cron). Il file crontab principale a livello di sistema è /etc/crontab. Cron è il prossimo Modalità di default
installato nella maggior parte delle distribuzioni Linux. Ogni utente sul sistema Linux può gestire i propri processi cron. Ogni cron utente è memorizzato in /var/spool/cron/crontabs/. Il demone cron esegue sia l’utente che il sistema crontab.
Il demone Cron ha un $PATH predefinito definito, che puoi trovare in /etc/crontab. Se non definito, utilizzare il percorso assoluto o aggiungere $PATH alla variabile cron. MAILTO
La notifica e-mail di Cron viene inviata al proprietario di crontab per impostazione predefinita. Per cambiarlo, modifica
variabile d’ambiente. Cronache sono memorizzati in /var/log/syslog su sistemi Ubuntu/Debian e in /var/log/cron
su Redhat/Rocky Linux. Puoi filtrare il file di registro utilizzando il comando grep per verificare se il processo cron è stato eseguito correttamente o meno.
1. Modifica/Aggiungi Crontab
$ crontab -e
Per modificare (lavori esistenti) o aggiungere un nuovo cron, utilizzare il comando crontab -e. Questo aprirà un editor per l’utente corrente.
$ crotab -u username -e
Per modificare il file crontab di un altro utente, digitare:
Oppure esegui semplicemente il comando crontab -e accedendo come quell’utente.
2. Elenca i lavori Cron
$ crontab -l
Per elencare tutti i lavori dell’utente corrente, digitare:
$ crontab -u -l
Per elencare tutti i lavori cron per un utente specificato, digitare:
3. Rimuovi i lavori cron
# crontab -r
Per rimuovere tutti i processi cron dell’utente corrente, esegui il seguente comando:
Nota: questo rimuoverà tutti i processi cron senza chiedere conferma.
# crontab -ir
Se si desidera eliminare in modo interattivo, è necessario utilizzare il seguente comando:
Esempi di lavori Crontab
Diamo un’occhiata ad alcuni esempi di crontab per la pianificazione dei lavori cron.
1. Esegui cron job ogni 12 ore
0 */12 * * * /scripts/test.sh
Questo aiuta con regolari controlli di sistema o backup. Per pianificare un’attività da eseguire ogni 12 ore, digitare:
2. Esegui il cron job ogni 5 minuti
*/5 * * * * /scripts/test.sh
A volte è necessario monitorare il sistema ogni n minuti. Utilizzare la seguente espressione per eseguire l’attività ogni 5 minuti.
3. Esegui cron job ogni giorno alle 2 del mattino
0 2 * * * /script/test.sh
Il backup giornaliero può essere programmato per un orario specifico. La seguente espressione esegue il cron job ogni giorno alle 2:00.
0 14 * * * /script/test.sh
Per programmare un cron job ogni giorno alle 14:00, cron utilizza l’orologio a 24 ore.
30 12 * * * /script/test.sh
4. Esegui cron job ogni giorno alle 12:30
5. Esegui cron job ogni minuto
* * * * * /scripts/test.sh
Ad esempio, hai uno script che deve essere eseguito ogni minuto, utilizza la seguente espressione.
6. Esegui il cron job in determinati minuti
2,15,30 * * * * /scripts/test.sh
Utilizzare la seguente espressione cron per eseguire lo script ai minuti 2, 15 e 30.
7. Esegui cron job da eseguire ogni sabato all’1:00
0 1 * * sat /scripts/test.sh
Questo ti aiuta a eseguire il backup il sabato a un’ora specifica. La seguente espressione aiuta a eseguire il cron job ogni sabato all’una di notte.
8. Eseguire il cron job da eseguire in mesi specifici
0 1 1 jan,apr,jun * /script/test.sh
Eseguire cron job alle 01:00 del primo giorno del mese di gennaio, aprile e giugno.
9. Eseguire il cron job nei giorni selezionati
0 4 * * sat,sun /script/test.sh
Per eseguire lavori cron in giorni selezionati come sabato e domenica, utilizzare:
10. Esegui cron job in momenti specifici della giornata
0 9-17 * * * /script/test.sh
Al minuto 0 dopo ogni ora dalle 9 alle 17
11. Esegui cron job due volte ogni sabato e domenica
0 2,23 * * sat,sun /scripts/test.sh
I lavori Cron consentono l’esecuzione delle attività in orari specifici in giorni specifici
12. Eseguire il cron job per un intervallo dal lunedì al venerdì
0 2 * * mon-fri /scripts/test.sh
Alle 02:00 tutti i giorni della settimana, dal lunedì al venerdì.
13. Esegui il cron job mensile
@monthly /scripts/test.sh
Invece di usare 0 0 1 **, puoi usare la scorciatoia usando @monthly. Funziona alle 00:00 del primo giorno del mese. In alternativa, puoi inserire lo script in /etc/cron.monthly/.
14. Esegui il cron job settimanale
@weekly /scripts/test.sh
Invece di usare 0 0 * * mon, puoi usare la scorciatoia usando @weekly. Funziona alle 00:00 di lunedì. In alternativa, puoi inserire lo script in /etc/cron.weekly/.
15. Esegui cron job ogni giorno
@daily /scripts/test.sh
Invece di usare 0 0 * * *, puoi usare la scorciatoia usando @daily. Opera alle 00:00 tutti i giorni. In alternativa, puoi inserire lo script in /etc/cron.daily/.
16. Esegui un cron job orario
@hourly /scripts/test.sh
Invece di usare 0 */1 * * *, puoi usare la scorciatoia usando @hourly. Funziona a 0 minuti dopo ogni ora. In alternativa, puoi inserire lo script in /etc/cron.hourly/.
17. Eseguire il processo cron al riavvio
@reboot /scripts/test.sh
Per eseguire un’attività a ogni riavvio del sistema, utilizzare la stringa @reboot. Lo script verrà eseguito dopo il riavvio.
18. Eseguire il cron job ogni 30 secondi
Cron consente solo l’esecuzione per un minimo di 60 secondi. Non esiste un modo semplice per pianificare l’esecuzione di un processo ogni 30 secondi.
* * * * /scripts/run.sh * * * * sleep 30; /scripts/run.sh
Ma possiamo usare una soluzione alternativa aumentando il ritardo di 30 secondi.
19. Eseguire un cron job e reindirizzare l’output
*/3 * * * * /usr/bin/php /script/run.php >> /var/log/run.log
Questo eseguirà lo script php ogni 3 minuti e reindirizzerà l’output su un file.
20. Esegui cron job per eseguire più comandi
0 */12 * * Sun command1 && command2
Per eseguire cron per eseguire più comandi, utilizzare l’operatore && tra i comandi.
Eseguire il backup dei processi cron
# crontab -l > /backup/cron/root-bckup
.txt
Per eseguire il backup di cron utilizzare il seguente comando
# crontab -u userName -l > /backup/cron/user-bckup.txt
Per cron eseguire il backup di un utente specifico, digitare:
# crontab /backup/cron/root-backup.txt
Per ripristinare cron dal file di backup, usa semplicemente:
Conclusione
In questo tutorial abbiamo imparato a conoscere crontab in Linux ed esempi per programmare cron job.
Se hai feedback e suggerimenti, commenta di seguito.