Cron Jobs Completa principianti Tutorial

Cron Jobs Completa principianti Tutorial
Cron è l'utilità più utile in un sistema operativo Linux o UNIX che consente di eseguire comandi o script su un determinato programma senza alcun intervento utente. I comandi e gli script programmati sono anche nominati Cron Jobs. Viene utilizzato principalmente per automatizzare lavori ricorrenti come eseguire backup programmati, pulizia di file temporanei, manutenzione del sistema e vari altri lavori ricorrenti. È simile allo scheduler Task in Windows OS.

In questo tutorial, ti forniremo l'introduzione di base di tutto ciò che devi capire per pianificare un lavoro con Cron. Ciò include la sintassi di base di Cron, la modifica del file Crrontab, la pianificazione di un lavoro con Cron con pochi esempi, visualizza il lavoro Cron, ecc.

Nozioni di base sul lavoro Cron

Comprendiamo alcune basi di un lavoro cron.

Cos'è Crond?

Crond è il demone nel sistema Linux che funziona in background e controlla ogni minuto per vedere se c'è un lavoro in programma in quel momento. Se c'è, svolge quel lavoro, altrimenti rimane inattivo.

Sintassi del lavoro Cron

La sintassi per il lavoro Cron è la seguente:

* * * * * comando/script

Da sinistra:

  • Il primo * corrisponde a minuti (0-59)
  • Il secondo * corrisponde alle ore (0-23)
  • Il terzo * corrisponde al giorno del mese (1-31)
  • Il quarto * corrisponde al mese dell'anno (1-12)
  • Il quinto * corrisponde al giorno della settimana (0-6, da domenica a sabato)

Per specificare più valori in un campo, utilizzare i seguenti simboli dell'operatore:

  1. Asterisk (*): Per specificare tutti i possibili valori per un campo
  2. Trattino (-): A Sspecificare un intervallo di valori
  3. La virgola (,): Per specificare un elenco di valori
  4. Separatore (/): Per specificare un valore di passaggio

Modifica del file Crrontab

Crrontab è un file che contiene i lavori programmati in una sintassi specifica. Esistono due tipi di file Crrontab; Uno per lavori cron specifici del sistema e l'altro per i lavori cron specifici dell'utente.

System Cron Jobs

I lavori cron a livello di sistema si trovano in /etc/crontab file e /etc/cron.D directory, e vengono eseguiti /etc/cron.ogni ora, /etc/cron.quotidiano, /etc/cron.settimanalmente E /etc/cron.mensile. Solo un amministratore di sistema può accedere a questi file.

Un amministratore di sistema può definire un lavoro cron utilizzando il seguente comando:

$ nano /etc /crontab

Ecco la sintassi del lavoro in /etc/crontab file:

# MIN HR DayOfmonth Month DayofWeek Nome utente Comando
* * * * * utente1 ifconfig

Lavori cron specifici dell'utente

I lavori cron specifici dell'utente si trovano nel /var/spool/cron/crontabs directory. Sebbene sia possibile modificare questi lavori manualmente, si consiglia di modificare questi lavori utilizzando il comando crontab -e.

Un utente standard può definire un lavoro cron utilizzando il seguente comando:

$ crontab -e

Ad esempio, se hai effettuato l'accesso come utente "test", l'esecuzione del comando crontb -e modificherà il file crontab per l'utente "test". Allo stesso modo, se hai effettuato l'accesso come utente di root, il comando CRTATB -E modificherà il file CRTATB per l'utente root.

Emettere il comando di seguito in terminale per modificare il file CRTABS per qualsiasi altro utente:

$ sudo crontab -u -e

Ad esempio, se hai effettuato l'accesso come utente "Test1" e si desidera modificare il file Crrontab per l'utente "Test2", il comando sarebbe:

$ sudo crontab -u test2 -e

Ecco la sintassi del lavoro Cron che può essere aggiunto nel file Crrontab:

# m h dayofmonth mese comando dayofweek
* * * * * ifconfig

Puoi vedere in lavori specifici dell'utente che non esiste un "nome utente" archiviato.

Comandi di Crrontab

Il comando crontab viene utilizzato per modificare, elencare e rimuovere i lavori Cron:

  • crontab -e Per modificare il file Crrontab dell'utente corrente
  • Crrontab -l Per visualizzare i contenuti del file CRTARTB
  • Crrontab -u [nome utente] Per modificare il file CRTAB di qualsiasi altro utente
  • Crrontab -r Per rimuovere il file Crrontab dell'utente corrente
  • crontab -i Per visualizzare un prompt prima di rimuovere il file CRTAB dell'utente corrente

Pianificare un lavoro con Cron

Con Cron, puoi svolgere un lavoro in un orario specifico, una data e intervalli con un'unità minima in pochi minuti, i.e., Puoi svolgere un lavoro ogni minuto.

Per programmare un lavoro con Cron, aprire il file Crrontab utilizzando il metodo discusso nella sezione precedente. Una volta aperto il file Crrontab, ti verrà richiesto di selezionare un editor di testo. Digita un numero per scegliere il tuo editor di testo preferito. Scorri verso il basso fino in fondo al file e aggiungi i lavori nella sintassi sopra descritta. Ogni riga in un file specifica un comando. Le prime cinque voci nella riga specificano l'ora pianificata e l'ultima voce specifica quale comando o script dovrebbe essere eseguito.

Esempio:

La seguente riga nel file Crrontab pianificherà il lavoro Cron per eseguire il comando/script ogni 30 ° minuto ecologico ogni giorno di settimana da lunedì al sabato.

*/30 5 * * 1-6 Comando/Script

Minuti

In questo campo, specifichiamo i minuti in cui vogliamo che il comando venga eseguito. È specificato da 0 a 59. Il * in questo campo significa eseguire il lavoro ogni minuto. Nella riga di Crrontab sopra, il */30 dice al lavoro di Cron di eseguire il comando/script specificato ogni 30 minuti.

Ore

In questo campo, specifichiamo le ore in cui vogliamo che il comando venga eseguito. È specificato da 0 a 23. Il * in questo campo significa eseguire il lavoro ogni ora. Nella riga di Crrontab sopra, il valore 5 indica al lavoro di Cron di eseguire il comando/script specificato ogni cinque ore.

Giorno del mese

In questo campo, specifichiamo i giorni particolari dei mesi in cui vogliamo che il comando venga eseguito. È specificato da 1 a 31. Il * in questo campo significa ogni giorno. Nella riga di Crrontab sopra, il * dice al lavoro di Cron di eseguire il comando/script specificato ogni giorno.

Mese dell'anno

In questo campo, specifichiamo i mesi particolari quando vogliamo che il comando venga eseguito. È specificato da 1 a 12. Il * in questo campo significa ogni mese. Nella riga di Crrontab sopra, il * dice al lavoro Cron di eseguire il comando/script specificato ogni mese.

Giorno della settimana

In questo campo, specifichiamo i giorni particolari della settimana in cui vogliamo che il comando venga eseguito. È specificato da 0 a 6 da domenica a sabato (0 per domenica e 6 per sabato). Il * in questo campo significa ogni giorno in una settimana. Nella riga di Crrontab sopra, il * dice al lavoro di Cron di eseguire il comando/script specificato ogni giorno in una settimana.

Esempi di lavori cron

Ecco alcuni esempi di lavori Cron:

Esegui un lavoro cron ogni 15 minuti

Per programmare un lavoro Cron da eseguire ogni 15 minuti, aggiungi la riga in basso nel file Crrontab:

*/15 * * * * comando/script

Gestisci un lavoro Cron alle 5 del mattino ogni giorno

Per programmare un lavoro Cron in esecuzione alle 5 del mattino ogni giorno, aggiungi la riga in basso nel file Crrontab:

0 5 * * * comando/script

Esegui un lavoro cron alle 17:00 ogni giorno

Per programmare un lavoro Cron da eseguire ogni giorno alle 17:00, aggiungi la riga in basso nel file Crrontab:

0 17 * * * comando/script

Esegui un lavoro cron alle 9 del mattino il primo giorno di ogni mese

Per programmare un lavoro Cron da eseguire alle 9:00 il primo giorno di ogni mese, aggiungi la riga in basso nel file Crrontab:

0 9 1 * * comando/script

Esegui un lavoro cron ogni ora ogni 15 marzo

Per programmare un lavoro cron ogni ora ogni 15 marzo, aggiungi la riga in basso nel file Crrontab:

0 * 15 3 * comando/script

Esegui un lavoro cron ogni 5 ore

Per programmare un lavoro cron ogni 5 ore, aggiungi la riga sotto nel file Crrontab:

0 */5 * * * comando/script

Esegui un lavoro cron ogni 15 minuti

Per programmare un lavoro Cron da eseguire ogni 15 minuti, aggiungi la riga in basso nel file Crrontab:

*/15 * * * *

Usando stringhe

Le seguenti stringhe possono anche essere utilizzate per definire un lavoro:

  1. @ogni ora: Per eseguire un lavoro una volta ogni ora, io.e., "0 * * * *"
  2. @mezzanotte: Per eseguire un lavoro una volta ogni giorno, io.e., "0 0 * * *"
  3. @quotidiano: uguale a mezzanotte
  4. @settimanalmente: Per eseguire un lavoro una volta alla settimana, io.e., "0 0 * * 0"
  5. @mensile: Per eseguire un lavoro una volta al mese, io.e., "0 0 1 * *"
  6. @annualmente: Per eseguire un lavoro una volta all'anno, io.e., "0 0 1 1 *"
  7. @annuale: uguale a @Enly
  8. @riavviare: Per eseguire un lavoro una volta ad ogni startup

Ad esempio, per eseguire uno script o un comando ogni settimana, la voce nel file Crrontab sarebbe:

@Weekly Command/Script

Directory cron predefinite

Ci sono alcune directory cron pre-definite in Linux in cui gli script memorizzati vengono eseguiti automaticamente. Se inseriamo uno script sotto queste directory, verrà eseguito automaticamente nel tempo configurato.

  • /etc/cron.quotidiano
  • /etc/cron.ogni ora
  • /etc/cron.mensile
  • /etc/cron.settimanalmente

Ad esempio, per eseguire uno script una volta al mese, dovrai inserirlo in /etc /cron.mensile.

Visualizza i lavori Cron

Visualizza i lavori per l'utente corrente

Utilizzare il seguente comando per visualizzare tutti i lavori cron programmati per l'utente corrente:

$ crontab -l

Visualizza i lavori per gli utenti root

Per visualizzare tutti i lavori programmati dell'utente root, emettere il seguente comando in terminale:

$ cat /etc /crontab

Dovrai essere login come utente root o eseguire il comando come sudo.

Visualizza i lavori per gli altri utenti

Per visualizzare tutti i lavori programmati di un utente specifico, emettere il seguente comando in Terminal in sostituzione del nome utente effettivo:

$ sudo crontab -u -l

Per eseguire questo comando, avrai bisogno di privilegi sudo.

Visualizza lavori cron orari

Per visualizzare tutti i lavori CRON configurati per eseguire ogni ora, emettere il seguente comando nel terminale:

$ ls -la /etc /cron.ogni ora

Visualizza i lavori quotidiani Cron

Per visualizzare tutti i lavori CRON configurati per eseguire quotidianamente, emettere il seguente comando nel terminale:

$ ls -la /etc /cron.quotidiano/

Visualizza lavori settimanali cron

Per visualizzare tutti i lavori CRON configurati per eseguire settimanalmente, emettere il seguente comando in terminale:

$ ls -la /etc /cron.settimanalmente/

Visualizza lavori mensili cron

Per visualizzare tutti i lavori CRON configurati per eseguire mensilmente, emettere il seguente comando nel terminale:

$ ls -la /etc /cron.mensile/

Backup di tutti i lavori Cron

Si consiglia di mantenere un backup di tutti i lavori cron in un file in modo da poter recuperare in caso di eliminazione. Per effettuare un backup di tutti i lavori attuali, utilizzare l'operatore di reindirizzamento per reindirizzare l'output di Crrontab -L in un file.

$ crontab -l> backup_cron.TXT

Rimozione di tutti i lavori di cron programmati

Per rimuovere tutti i lavori Cron programmati, utilizzare il flag -r come segue:

$ crontab -r

Autorizzazione di cron

Possiamo limitare l'accesso al comando crontab tramite due file: / ecc/cron.consentire e / etc / cron.negare.

  • /etc/cron.permettere - Aggiungi utenti (uno per riga) che si desidera consentire l'accesso ai comandi CRTAB. Questi utenti possono eseguire lavori di pianificazione.
  • /etc/cron.negare - Aggiungi utenti (uno per riga) che si desidera negare l'accesso ai comandi Crrontab. Questi utenti non possono eseguire lavori programmati.

Generatori di sintassi di Crrontab

Ci sono alcuni siti Web che consentono la generazione di sintassi per i crontabs. Questi siti Web rendono più facile generare espressione di crontab senza dover ricordare la sintassi. Sebbene ci siano vari siti Web disponibili per generatori di sintassi come Crrontabgenerator.com, crontab-generator.org e cronmaker.com. Quello che preferisco e ho trovato utile è il crontab.guru. Sulla base dell'input dell'utente, genera un'espressione di Crrontab che è possibile copiare incolla nel file Crrontab.

Conclusione

In questo tutorial, abbiamo spiegato le basi di Cron Jobs, la sua sintassi e come configurarlo. Abbiamo anche discusso di come visualizzare i lavori di cron, creare un backup e rimuoverli se non è più necessario.