IL "Cron"Daemon è un'applicazione Linux integrata che gli utenti di Linux utilizzano per la pianificazione dell'esecuzione dei processi. Cron cerca il "tavoli cron" O "Crrontab"Per i file e gli script particolari. Il file crontab fornisce una serie di comandi che è possibile eseguire regolarmente. Fornisce inoltre i nomi dei comandi utilizzati per la gestione dell'elenco dei comandi. Crrontab Utilizza anche lo scheduler Cronjob per eseguire operazioni. Secondo una serie di istruzioni, Cron è una funzione di sistema che farà o eseguirà processi per te. Crrontab è il nome del programma, così come l'utilità utilizzata per queste modifiche.
In questo post, tratteremo i seguenti punti relativi a Crrontab:
Quindi andiamo verso questo viaggio!
Storia:
Quando il sistema operativo ha abilitato la modalità multiutente per i suoi utenti, il servizio di sistema Cron è stato chiamato da "/etc/rc". Il suo algoritmo è costituito dai seguenti passaggi:
Questa versione di Cron era affidabile e diretto, ma utilizzava risorse indipendentemente dal fatto che avesse un lavoro da fare. Durante un esperimento alla fine degli anni '70 alla Purdue University, è stato scoperto che un vax che si estende nel tempo che si estende Servizio di Cron A tutti i 100 utenti hanno fatto troppa pressione sul sistema.
Versioni moderne Cron:
Nuovi Cron sono apparsi con l'introduzione del progetto Linux e GNU. IL "Vixie Cron", Creato da Paul Vixie nel 1987, è il cron più comune là fuori. IL Vixie Cron La versione 3 è stata introdotta nell'ultimo trimestre del 1993. Nel gennaio 2004, ISC Cron è stato rinominato versione 4.1. La maggior parte delle distribuzioni BSD e Linux utilizza la versione 3, che ha alcune correzioni di bug minori. Nel 2007, Red Hat ha separato Vixie-Cron 4.1 e Anacron 2.3 è stato aggiunto nel 2009. Anacron e Dcron sono altre due implementazioni di spicco. Anacron non è un programma cron autonomo. Deve essere chiamato da un altro Cronjob. Matt Dillon, il fondatore di Dragonfly BSD, ha creato Dcron e Jim Pryor ha assunto la sua manutenzione nel 2010.
Dale Mellor ha creato McRon, una versione Cron a base di Guile compatibile con Vixie Cron, nel 2003. Consente inoltre una maggiore flessibilità includendo qualsiasi codice dello schema nelle descrizioni delle attività e nei calcoli di pianificazione. MCRON è installato per impostazione predefinita nell'ambito della gestione dei pacchetti Guix. Garantisce inoltre che i pacchetti richiesti siano installati e che i crontab pertinenti si riferiscano correttamente ad essi. Laddove le implementazioni CRON non sono accessibili in un ambiente di web hosting, una soluzione WebCron imposta le attività di ring da eseguire regolarmente.
Cos'è un cronjob?
Cron è uno strumento che consente di pianificare le attività per la successiva esecuzione. Potresti voler utilizzare un altro comando se si desidera pianificare un lavoro una tantum per una data successiva. Allo stesso tempo, Cron è l'ideale per le attività ricorrenti.
Potresti avere familiarità con i processi di fondo in Windows, come i servizi. Cron è un demone che esegue la sua funzionalità eseguendo le attività in background. In uno stato inattivo, il demone attende di svolgere un'attività dal sistema di lavoro o di un altro sistema basato su Linux presente nella rete. Parlando della struttura del file cron, abbiamo un file cron, un semplice file di testo che include comandi che verranno eseguiti all'ora pianificata. IL "/etc/crontab"È il file CRTAB del sistema predefinito, che esiste nella seguente directory di Crrontab:"/etc/cron.*/". Gli amministratori di sistema possono modificare il file CRTAB del sistema.
I sistemi operativi basati su Linux supportano numerosi utenti. Ognuno di essi può creare il loro file crontab e aggiungere comandi per eseguire le attività ogni volta che lo desiderano. Un daemon Cron controllerà il file Crrontab, quindi eseguirà il lavoro in background. Puoi anche utilizzare i cronjob per la creazione di backup, il monitoraggio dello spazio del disco e per l'automazione della manutenzione del sistema. Le attività di Cron sono ideali per una macchina che esegue sette giorni alla settimana, 24 ore al giorno. Mentre gli amministratori di sistema usano principalmente le attività Cron, possono anche essere estremamente preziosi per gli sviluppatori Web.
Perché usare Cronjob?
Elementi Cronjob:
La maggior parte dei cronjobs ha tre parti:
La maggior parte dei programmi che richiedono l'uso di un cronjob fornirà istruzioni dettagliate su come configurarlo.
Il file Crrontab:
Una riga di file crontab è "inattiva" o "attiva". Una riga "attiva" è una voce di comando cron o un parametro ambientale. Qualsiasi riga che viene ignorata, compresi i commenti, è considerata "inattiva". Non sono prese in considerazione le schede, gli spazi principali e le righe vuote. Le righe con il segno "#" come primo personaggio non spaziale viene letto come commenti e ignorato. Nelle impostazioni della variabile di ambiente o nei comandi Cron, i comandi non sono autorizzati ad esistere sulle stesse righe perché se si fa, i commenti diventano parte del comando cron.
Crrontab Working:
Crrontabs si trovano nella directory locale, come in "/var/spool" O "/var/spool/cron/crontabs"Che è la sua sotto-directory. Anche se sono presenti in una di queste posizioni, usa il comando crontab per svolgere il compito di modificarli. Capteremo quali componenti sono necessari prima che tu possa aspettarti i risultati desiderati dalle azioni di Crrontab. La voce nel crontab deve essere presente nel primo comando. I cinque parametri indicano il loro tempo di esecuzione e se dovrebbe essere eseguito o meno. Il crontab può essere modificato inserendo la modalità di modifica prima con il comando "crontab -e". Una volta che hai dedicato del tempo come input, il crontab è pronto per essere eseguito al momento specificato.
Il daemon Cron aiuta a eseguire i controlli necessari in modo che il comando CRTAB possa essere eseguito in quell'istanza. Ogni minuto, il demone Crrontab controlla il crontab. Di conseguenza, questo crontab contiene informazioni fino al minuto. Dopo l'esecuzione del controllo, il comando associato viene eseguito con i campi nel CRTATB corrispondente all'ora corrente.
Sizzazioni come "ore mancanti" durante la luce del giorno dovrebbero essere evitate perché il comando potrebbe non essere nemmeno eseguito una volta. D'altra parte, se il tempo si verifica più di una volta, il comando può persino eseguire due volte. Un altro esempio è che un trattino "-" può eseguire il Cronjob più volte durante il giorno. Ad esempio, se qualcuno desidera eseguire un Cronjob alla decima e 11 ° ora del giorno, il comando 10-11 può essere utilizzato. Un altro aspetto critico dell'esecuzione di cronjobs sono le impostazioni per consentire l'esecuzione di lavori. Consentire o negare a un utente di eseguire cronjobs può essere eseguito apportando alcune modifiche nel cron.consentire o cron.Negare i file.
Utilizzo di Crrontab:
Linux System Pack ha incluso "Crrontab" per la pianificazione del lavoro. Di conseguenza, l'esecuzione di uno script come root semplifica la manutenzione degli aggiornamenti del sistema. È semplice come cambiare il Cronjob e, dopo quello, attendere il processo di riavvio.
Sintassi del crontab:
La sintassi del crontab comprende sei campi in cui i primi cinque campi sono correlati alla data e all'ora di esecuzione. Ogni campo in un file Crrontab esiste nel seguente ordine:
Hour (S) Hour (S) Month (S) Weekday Command (S)
Dai un'occhiata alla seguente sintassi del comando CRTAB:
***** /pathtoscript
Caratteri speciali in espressione:
Cron Special Strings
Il daemon Cron ha alcune scorciatoie che semplificano le definizioni del lavoro.
Queste parole hanno un significato preciso e puoi utilizzarle nella sintassi anziché nella specifica della data a 5 colonne. Di seguito sono riportati alcune scorciatoie di Cron:
@ogni ora: È lo stesso di "0 * * * *"E esegue il comando all'inizio di ogni ora.
@quotidiano: È lo stesso di "0 0 * * *"E esegue il comando una volta al giorno, a 12 a.M. (mezzanotte).
@settimanalmente: È lo stesso di "0 0 * * 0"E gestisce il comando ogni settimana domenica a mezzanotte.
@mensile: È lo stesso di "0 0 1 * *"Ed esegue il comando a 12 a.M. (mezzanotte) Il primo giorno di ogni mese.
@annuale: È lo stesso di "0 0 1 1 *"E gestisce il comando una volta all'anno il 1 gennaio a mezzanotte.
@riavviare: Ogni volta che il sistema viene riavviato, questo comando verrà eseguito.
Variabile d'ambiente:
Quando Cron gestisce un lavoro, un ambiente che imposta una linea nel crontab può impostare variabili di ambiente.
Nel Crrontab, è possibile aggiungere un'impostazione dell'ambiente come:
nome = valore
Gli spazi sono opzionali in giro "valore". Inoltre, chiuso è la corda tra le citazioni per il mantenimento degli spazi straordinari o di guida.
Cron imposta alcune variabili di ambiente per te automaticamente:
Variabili Crrontab:
Alcune delle variabili Cron più regolarmente utilizzate sono elencate di seguito:
Opzioni di comando Crrontab:
Installazione di Cron su CentOS:
Per impostazione predefinita, Cron è incluso in CentOS 8. Per qualche motivo, se non lo hai già, installalo sul tuo sistema:
$ sudo dnf installa cron
$ sudo systemctl abilita -ora Crond.servizio
$ sudo systemctl status crond
Scheduler Crrontab: a livello di sistema
Regolarmente, la maggior parte dei servizi utilizza Crrontab. I servizi utilizzano le loro impostazioni di Crrontab Scheduler direttamente al "/etc/cron.D"Directory. Successivamente, lo scheduler eseguirà automaticamente i file presenti in questa directory. Di seguito sono riportate le cartelle preconfigurate di Crrontab: “/Etc/cron.ogni ora ","/etc/cron.ogni giorno ","/etc/cron.settimanalmente "e"/etc/cron.mensile". Gli amministratori di Linux hanno il pieno controllo su queste directory. Allo stesso tempo, lo scheduler attraversa ed esegue regolarmente questi file di crontab. Inoltre, se gli utenti di root vogliono eseguire qualcosa, ad esempio, vuole eseguire uno script particolare ogni giorno, posizionerà il file all'interno del "/etc/cron.quotidiano"Directory.
Accesso Cron:
È possibile assegnare il controllo sull'esecuzione di qualsiasi file utilizzando Cron. Valuta questa funzionalità utilizzando i seguenti file:
/etc/cron.permettere: Permettere
/etc/cron.negare: Negare
Cose da tenere a mente:
Gestione Crrontab:
Come abbiamo discusso in precedenza Crrontab, è un file particolare contenente il programma di lavori eseguiti da Cron. D'altra parte, questi lavori non sono pensati per essere modificati direttamente. Il comando Crrontab è consigliato a questo scopo. Il comando Crrontab ti consente di modificare Crrontab relativo al profilo utente senza la necessità di modificare i tuoi privilegi. Questo comando ti avviserà anche degli errori presenti nel crontab, che non sarebbero possibili se modificati direttamente. Utilizza il seguente comando per la modifica del tuo crontab:
$ crontab -e
Sui sistemi Linux, "/ etc/ directory"Contiene un altro file Crrontab. Nella posizione menzionata, esiste un CRONTAB a livello di sistema che include un campo che specifica quali privilegi di un profilo utente per l'esecuzione di Cronjobs. Utilizzare il seguente comando per la modifica del crontab a livello di sistema:
$ sudo nano /etc /crontab
L'altro metodo più semplice per accedere e modificare il file Crrontab sta utilizzando il "nano"Editore. Fare "nano"Il tuo editor predefinito seguendo questi passaggi:
$ nano ~/.Bash_profile
Aggiungi la riga seguente all'inizio del file aperto:
Export Visual = "Nano"
Salva la riga aggiunta in " ~/.Bash_profile"E uscita. Successivamente, ricarica il “~/.Bash_profile" file.
$ . ~/.Bash_profile
Ora, scrivi questo comando per aggiungere cronjobs:
$ crontab -e
Questo è il file crontab, dove salveremo tutti i nostri cronjob:
Per visualizzare il contenuto del file Crrontab, utilizzare il seguente comando:
$ crontab -l
Nota: Attualmente, non abbiamo aggiunto alcun Cronjob nel file Crrontab per stampare qualcosa.
Per rimuovere i cronjob pianificati nel file Crrontab, scrivi questo comando:
$ crontab -r
14 Esempi di Cronjob:
Esempio 1: esecuzione di Cronjob dopo ogni 50 minuti
Il seguente comando Crrontab eseguirà il "aggiornato b"Dopo ogni 50 minuti:
50 * * * * aggiornato b
Esempio 2: esecuzione di Cronjob in tempi e mesi specifici
Esempio di crontab da eseguire /USR/Local/Bin/TestScript.sh alle 8:00 p.M. il 20 gennaio, febbraio, marzo e aprile:
00 08 20 1,2,3,4 */USR/Local/Bin/TestScript.sh
Esempio 3: esecuzione di Cronjob ogni venerdì 1 p.M.
Il comando di seguito consentirà al sistema di eseguire il "TestScript.sh"Ogni venerdì, 1 p.M.:
0 01 * * Ven /Scripts /TestScript.sh
Esempio 4: esecuzione di Cronjob ad ogni minuto
Per eseguire uno script particolare dopo ogni minuto, controlla la sintassi di questo comando:
* * * * * /Scripts /TestScript.sh
Esempio 5: esecuzione di Cronjob nei giorni specifici
Di seguito è riportato un esempio che ti aiuterà se si desidera programmare un Cronjob da eseguire in determinati giorni. Questo esempio eseguirà il "TestScript.sh"Lunedì e mercoledì alle 2 P.M.:
0 02 * * mon, mercoledì /script /testscript.sh
Esempio 6: Cronjob Execution il primo lunedì di ogni mese
Il parametro del tempo non è sufficiente per impostare in questo esempio. Utilizzeremo una condizione per specificare che lo script particolare dovrebbe essere eseguito il primo lunedì di ogni mese:
0 2 * * mon [$ (data +%d) -le 07] && /script /testscript.sh
Esempio 7: esecuzione di Cronjob ogni 10 secondi
Ancora una volta, specificheremo una condizione per eseguire il Cronjob ogni 10 secondi:
* * * * * /Scripts /Script.sh
* * * * * Sleep 10; /Scripts/Script.sh
Esempio 8: esecuzione di Cronjob per più attività
Usa (;) per configurare Cron per eseguire più comandi nel modo seguente:
* * * * * /Scripts /TestScript1.sh; /Scripts/TestScript2.sh
Esempio 9: Cronjob Execution all'inizio di ogni anno usando "@Yearly"
L'esecuzione di un'attività al primo minuto di un nuovo anno è utile nel caso in cui è necessario inviare i desideri per il nuovo anno a qualcuno."0 0 1 1 *"È simile al timestamp"@annuale“:
@ -presepe /script /testscript.sh
Esempio 10: Cronjob Execution all'inizio di ogni mese usando "@monthly"
Puoi usare il "@mensile"Timestamp per eseguire le attività mensili come la fatturazione ai clienti e il pagamento delle fatture:
@Monthly /Scripts /TestScript.sh
Esempio 11: Cronjob Execution all'inizio di ogni settimana usando "@Weekly"
Eseguire qualsiasi attività all'inizio della settimana, come la pulizia del sistema utilizzando "@settimanalmente"Timestamp. "settimanalmente" è equivalente a "0 0 * * mon":
@Weekly /Bin /TestScript.sh
Esempio 12: Cronjob Execution all'inizio di ogni mese usando "@daily"
"@quotidiano"Il timestamp è equivalente a"0 0 * * *". Viene utilizzato per eseguire quotidianamente il compito basato su attività:
@daily /scripts /script.sh
Esempio 13: Cronjob Execution all'inizio di ogni ora usando "@hourly"
"@ogni ora"Il timestamp è equivalente a"0 * * * *". È possibile utilizzare questo timestamp per eseguire le attività orarie:
@Hourly /Scripts /TestScript.sh
Esempio 14: Esecuzione di Cronjob per riavvio del sistema
"@riavviare"È utile per le azioni che si desidera eseguire ogni volta che il sistema si avvia. È utile per l'avvio automatico delle attività in background. Questo tipo di Cronjob viene utilizzato per programmare gli script di avvio.
@Reboot /Scripts /TestScript.sh
Creazione di Cronjob per utente specifico
Per la pianificazione di un Cronjob per un determinato utente, specificare il suo nome nel modo seguente:
***** Nome utente /path_to_script
Ora, diamo un'occhiata a un rapido esempio:
50 * * * * Linuxhint aggiornato b
Questo comando eseguirà il "aggiornato b"Dopo ogni 50 minuti per il"Linuxhint" utente.
Elencare i cronjobs:
Usa questo comando per elencare i cronjob pianificati sul sistema:
$ crontab -l
Creazione di cronjobs Backup:
Per creare un backup dei cronjob programmati, utilizzare questo comando:
$ crontab -l> cron -backup.TXT
Verifica il contenuto di "cron-backup.TXT"Per assicurarsi che i Cronjobs siano di backup o no:
$ Cat Cron-Backup.TXT
Rimuovi i cronjob:
Metodo 1: senza prompt
IL "Crrontab -r"Il comando viene utilizzato per rimuovere i cronjob:
$ Crontab -r
Metodo 2: con prompt
L'esecuzione del seguente comando mostrerà un prompt prima di eliminare il crontab:
$ crontab -i -r
Gestione della produzione di Cronjob:
Come abbiamo detto nell'introduzione di Cronjob, questi lavori operano in background. Questo è il motivo per cui non è sempre evidente se hanno completato l'attività o meno. A questo punto, hai una certa comprensione relativa alla programmazione Cronjob e al suo utilizzo. Ora, puoi sperimentare vari modi di reindirizzamento dei Cronjobs. Questo reindirizzamento ti aiuterà a monitorare la funzionalità dei cronjobs.
Ad esempio, è possibile inviare l'output di Cronjobs all'indirizzo e -mail associato al profilo utente Linux se si dispone di un agente di trasferimento di posta installato e configurato sul server, come "Inviare una mail". In confronto, a "Mailto"L'impostazione nella parte superiore del crontab può anche essere utilizzata per la fornitura manuale degli indirizzi e -mail. Aggiungi le seguenti righe al tuo file Crrontab, in cui abbiamo un "Mailto"Dichiarazione seguita dal mio indirizzo e -mail, una direttiva domestica che si riferisce alla directory in cui dovrebbe essere trovato il binario cron, un singolo compito cron e un CONCHIGLIA Direttiva che indica la shell da eseguire che è bash nel nostro caso.
Mailto = "[email protected] "
Shell =/bin/bash
Home =/
50 * * * * Linuxhint aggiornato b
* * * * * echo 'Esegui questo comando ogni 50 minuti'
Questa attività restituirà il messaggio "Esegui questo comando ogni 50 minuti". L'output verrà inviato via email all'indirizzo e -mail specificato presente nel "Mailto"Direttiva. Per evitare di ricevere un'e -mail con il risultato, è possibile reindirizzare l'output dell'attività CRON in una posizione vuota o un file di registro.
Per l'invio dell'output di un comando pianificato a un file di registro: Append >> Alla fine del comando, con il nome e il percorso della directory contenente il file di registro, come mostrato di seguito:
* * * * * echo 'Esegui questo comando ogni 50 minuti' >>/directory/percorso/file.tronco d'albero
Abbiamo creato un file di registro di esempio per questo scopo, quindi scriveremo questo comando come segue:
* * * * * echo 'Esegui questo comando ogni 50 minuti' >> /testfile /campione.tronco d'albero
Cronjob Limits:
Server dedicato e VPS: In questo caso, non esiste alcuna restrizione in tempo per l'esecuzione di Cronjob.
Condiviso e rivenditore: Un cronjob potrebbe non essere eseguito più di una volta ogni 15 minuti.
Gestione degli errori di Cronjob:
Metodo 1: usando /dev /null
Invece di ricevere un avviso e -mail, puoi facilmente inviare i nostri errori Cronjob e registrare a Dev/Null. Tutto ciò che inviamo o scriviamo a Dev/Null è scartato.
* * * * * CD /Home /Linuxhint && /bin /Bash Shell-TestScript.sh> /dev /null 2> & 1
Metodo 2: invio di output a un determinato file
È un metodo popolare e la maggior parte degli utenti preferisce questo metodo. In questo metodo, devi creare un file per salvare i registri Cronjob. Se il lavoro viene completato correttamente, stamperà l'output; Altrimenti, stamperà un errore.
Abbiamo creato un file di registro di esempio per questo scopo, quindi scriveremo questo comando come segue:
* * * * * CD /Home /Linuxhint && /bin /Bash Shell-TestScript.Sh >> campione.tronco d'albero
Qui:
Generatori di sintassi per crontab:
Dalla dimostrazione dell'esempio, puoi determinare quanto sia facile programmare un Cronjob. A volte, non puoi memorizzare una particolare sintassi Cronjob. Per rendere il lavoro ancora più gestibile, pochi generatori di sintassi basati sul Web per Cron sono lì per te. Ora parleremo di alcuni siti Web che generano espressioni di Crrontab. Queste espressioni si basano sui tuoi input. Basta copiare/incollare la riga nel file Crrontab del sistema dopo aver generato l'espressione di Crrontab in base alle tue esigenze.
Generatore di Crrontab:
Il generatore di Crrontab è uno strumento basato sul web che consente di creare espressioni Crrontab più velocemente e senza sforzo. Questo sito Web comprende un modulo con diverse voci.
L'utente deve compilare tutti i campi essenziali nei moduli. Nei campi, è possibile selezionare il valore per il comando di sintassi secondo il requisito:
Quindi questo strumento di generatore Crrontab emetterà un comando nella seguente sezione evidenziata. Copia il comando generato, incollalo nel tuo file crontab e hai finito!
Guru Crrontab:
Questo sito Web è personalizzato per fornire esempi di esempio di cronjobs. Devi solo inserire le tue informazioni sul sito Web e genererà la sintassi di Crrontab in pochi minuti.
Cronmaker:
È un altro sito Web che si basa anche allo scopo di generare sintassi del comando Cronjob:
Front-end grafica per Crrontab:
Alcune utility front-end Crrontab sono disponibili per la creazione di attività Cron utilizzando un'interfaccia utente grafica. Per la gestione o l'aggiunta delle attività di Cron, non è necessario aggiornare il file Crrontab dalla riga di comando. Questi strumenti renderanno la gestione dei cronjobs un gioco da ragazzi!
Zeit:
Zeit è un'applicazione freeware creata nel linguaggio del computer C ++. Ai sensi della licenza GPLV3, il codice sorgente di questa applicazione è accessibile su GitHub. È basato su QT "Crrontab" E "A"Command Front-end. Possiamo utilizzare Zeit per le seguenti attività:
Crrontab UI:
L'interfaccia utente di Crrontab è una soluzione basata sul web per la gestione dei cronjobs in Linux con facilità e sicurezza. Non è necessario modificare manualmente il file crontab per creare, eliminare e gestire le attività Cron. Con alcuni clic del mouse, puoi fare tutto in questo browser Web. L'interfaccia utente di Crrontab rende semplice creare, modificare, fermare, rimuovere e eseguire il backup delle attività di Cron. Fa inoltre la sua parte in importazione, esportazione e distribuzione di cronjob su altre macchine.
Conclusione:
Cron è uno strumento versatile e potente che può aiutarti con una varietà di attività di amministrazione del sistema. È possibile automatizzare operazioni normalmente complicate con gli script di shell. Questo articolo comprende una guida completa di Crrontab per i principianti, che ha discusso di tutto, tra cui il lavoro di Crrontab, il suo utilizzo, la sua installazione su CentOS, esempi pratici di Cronjobs campione e generatori di sintassi di Crrontab.