crontab

Cron Jobs Tutorial pentru începători complet

Cron Jobs Tutorial pentru începători complet
Cron este cel mai util utilitar într-un sistem de operare Linux sau UNIX, care permite rularea comenzilor sau scripturilor într-un anumit program fără intervenția utilizatorului. Comenzile și scripturile programate sunt, de asemenea, denumite ca lucrări cron. Este folosit în principal pentru automatizarea lucrărilor recurente, cum ar fi executarea copiilor de rezervă programate, curățarea fișierelor temporare, întreținerea sistemului și diverse alte lucrări recurente. Este similar cu Planificatorul de activități din sistemul de operare Windows.

În acest tutorial, vă vom oferi introducerea de bază a tot ceea ce trebuie să înțelegeți pentru programarea unui job cu cron. Aceasta include sintaxa de bază a cronului, editarea fișierului crontab, programarea unui job cu cron cu câteva exemple, vizualizarea jobului cron etc.

Bazele Cron Job

Să înțelegem câteva elemente de bază ale unui job cron.

Ce este Crond?

Crond este daemon-ul din sistemul Linux care rulează în fundal și verifică în fiecare minut pentru a vedea dacă există vreun job programat la acel moment. Dacă există, îndeplinește acel job, altfel rămâne inactiv.

Sintaxa Cron Job

Sintaxa pentru jobul cron este următoarea:

* * * * * comandă / script

Din stânga:

Pentru a specifica mai multe valori într-un câmp, utilizați următoarele simboluri operator:

  1. Asterisc (*): Pentru a specifica toate valorile posibile pentru un câmp
  2. Liniuță (-): La specifica o serie de valori
  3. Virgula (,): Pentru a specifica o listă de valori
  4. Separator (/): Pentru a specifica o valoare pas

Editarea fișierului Crontab

Crontab este un fișier care conține lucrările programate într-o sintaxă specifică. Există două tipuri de fișiere crontab; una pentru joburile cron specifice sistemului și cealaltă pentru joburile cron specifice utilizatorului.

Lucrări cron de sistem

Lucrările cron la nivel de sistem sunt localizate în / etc / crontab fișier și / etc / cron.d director și sunt rulate / etc / cron.orar, / etc / cron.zilnic, / etc / cron.săptămânal și / etc / cron.lunar. Numai un administrator de sistem poate accesa aceste fișiere.

Un administrator de sistem poate defini o lucrare cron folosind următoarea comandă:

$ nano / etc / crontab

Iată sintaxa jobului în / etc / crontab fişier:

# min hr dayofmonth month dayofweek username command
* * * * * user1 ifconfig

Lucrări cron specifice utilizatorului

Lucrările cron specifice utilizatorului sunt localizate în /var / spool / cron / crontabs director. Deși puteți edita aceste lucrări manual, este recomandat să editați aceste lucrări folosind comanda crontab -e.

Un utilizator standard poate defini o lucrare cron folosind următoarea comandă:

$ crontab -e

De exemplu, dacă sunteți conectat ca utilizator „test”, executarea comenzii crontab -e va edita fișierul crontab pentru utilizatorul „test”. În mod similar, dacă sunteți conectat ca utilizator root, comanda crontab -e va edita fișierul crontab pentru utilizatorul root.

Lansați comanda de mai jos în Terminal pentru a edita fișierul crontab pentru orice alt utilizator:

$ sudo crontab -u -e

De exemplu, dacă sunteți conectat ca utilizator „test1” și doriți să editați fișierul crontab pentru utilizatorul „test2”, comanda ar fi:

$ sudo crontab -u test2 -e

Iată sintaxa lucrării cron care poate fi adăugată în fișierul crontab:

# m h dayofmonth month dayofweek command
* * * * * ifconfig

Puteți vedea în joburile specifice utilizatorului că nu există un „nume de utilizator” depus.

Comenzi Crontab

Comanda crontab este utilizată pentru a edita, enumera și elimina lucrările cron:

  • crontab -e Pentru a edita fișierul crontab al utilizatorului curent
  • crontab -l Pentru a afișa conținutul fișierului crontab
  • crontab -u [nume utilizator] Pentru a edita fișierul crontab al oricărui alt utilizator
  • crontab -r Pentru a elimina fișierul crontab al utilizatorului curent
  • crontab -i Pentru a afișa o solicitare înainte de a elimina fișierul crontab al utilizatorului curent

Programarea unui loc de muncă cu Cron

Cu Cron, puteți rula o lucrare la o anumită oră, dată și intervale, cu o unitate minimă în minute, i.e., poți rula o slujbă în fiecare minut.

Pentru a programa o lucrare cu cron, deschideți fișierul crontab folosind metoda discutată în secțiunea anterioară. Odată ce ați deschis fișierul crontab, vi se va solicita să selectați un editor de text. Tastați un număr pentru a alege editorul de text preferat. Derulați în jos până la partea de jos a fișierului și adăugați lucrări în sintaxa descrisă mai sus. Fiecare linie dintr-un fișier specifică o comandă. Primele cinci intrări din linie specifică ora programată, iar ultima intrare specifică ce comandă sau script ar trebui să ruleze.

Exemplu:

Următoarea linie din fișierul crontab va programa operația cron pentru a rula comanda / scriptul la fiecare 30 de minute din ultimele 5 ore în fiecare zi a săptămânii de luni până sâmbătă.

* / 30 5 * * 1-6 comandă / script

Minute

În acest câmp, specificăm minutele când dorim executarea comenzii. Este specificat de la 0 la 59. * În acest câmp înseamnă să executați lucrarea în fiecare minut. În linia crontab de mai sus, * / 30 îi spune jobului cron să ruleze comanda / scriptul specificat la fiecare 30 de minute.

Ore

În acest câmp, specificăm orele în care dorim executarea comenzii. Este specificat de la 0 la 23. * În acest câmp înseamnă să executați lucrarea în fiecare oră. În linia crontab de mai sus, valoarea 5 îi spune jobului cron să ruleze comanda / scriptul specificat la fiecare cinci ore.

Ziua lunii

În acest câmp, specificăm zilele particulare ale lunilor când dorim executarea comenzii. Este specificat de la 1 la 31. * În acest domeniu înseamnă în fiecare zi. În linia crontab de mai sus, * spune jobului cron să execute comanda / scriptul specificat în fiecare zi.

Luna anului

În acest câmp, specificăm lunile în care vrem să fie executată comanda. Este specificat de la 1 la 12. * În acest domeniu înseamnă în fiecare lună. În linia crontab de mai sus, * spune jobului cron să execute comanda / scriptul specificat în fiecare lună.

Zi a săptămânii

În acest câmp, specificăm zilele specifice săptămânii când dorim ca comanda să fie executată. Se specifică de la 0 la 6 de duminică până sâmbătă (0 pentru duminică și 6 pentru sâmbătă). * În acest domeniu înseamnă în fiecare zi într-o săptămână. În linia crontab de mai sus, * spune jobului cron să ruleze comanda / scriptul specificat în fiecare zi într-o săptămână.

Exemple de locuri de muncă Cron

Iată câteva exemple de joburi cron:

Rulați o lucrare cron la fiecare 15 minute

Pentru a programa o lucrare cron pentru a rula la fiecare 15 minute, adăugați linia de mai jos în fișierul crontab:

* / 15 * * * * comandă / script

Rulați un job cron la 5 dimineața în fiecare zi

Pentru a programa o lucrare cron pentru a rula la 5 dimineața în fiecare zi, adăugați linia de mai jos în fișierul crontab:

0 5 * * * comandă / script

Rulați un job cron la 17:00 în fiecare zi

Pentru a programa o lucrare cron pentru a rula la 17:00 în fiecare zi, adăugați linia de mai jos în fișierul crontab:

0 17 * * * comandă / script

Executați un job cron la ora 9:00 în prima zi a fiecărei luni

Pentru a programa o lucrare cron pentru a rula la 9 dimineața în prima zi a fiecărei luni, adăugați linia de mai jos în fișierul crontab:

0 9 1 * * comandă / script

Rulați un job cron în fiecare oră la fiecare 15 martie

Pentru a programa o lucrare cron în fiecare oră în fiecare 15 martie, adăugați rândul de mai jos în fișierul crontab:

0 * 15 3 * comandă / script

Rulați un job cron la fiecare 5 ore

Pentru a programa o lucrare cron la fiecare 5 ore, adăugați linia de mai jos în fișierul crontab:

0 * / 5 * * * comandă / script

Rulați o lucrare cron la fiecare 15 minute

Pentru a programa o lucrare cron pentru a rula la fiecare 15 minute, adăugați linia de mai jos în fișierul crontab:

* / 15 * * * *

Utilizarea șirurilor

Următoarele șiruri pot fi, de asemenea, utilizate pentru a defini o lucrare:

  1. @hourly: Pentru a executa o lucrare o dată la oră, i.e., „0 * * * *
  2. @miezul nopţii: Pentru a executa o lucrare o dată pe zi, i.e., „0 0 * * *
  3. @zilnic: la fel ca miezul nopții
  4. @săptămânal: Pentru a executa o lucrare o dată pe săptămână, i.e., „0 0 * * 0
  5. @lunar: Pentru a executa o lucrare o dată pe lună, i.e., „0 0 1 * *
  6. @anual: Pentru a executa o lucrare o dată pe an, i.e., „0 0 1 1 *
  7. @anual: la fel ca @ anual
  8. @ reboot: Pentru a executa o lucrare o dată la fiecare pornire

De exemplu, pentru a rula un script sau o comandă în fiecare săptămână, intrarea în fișierul crontab ar fi:

@comandă / script săptămânal

Directoare Cron predefinite

Există câteva directoare cron predefinite în Linux în care scripturile stocate sunt executate automat. Dacă așezăm un script sub aceste directoare, acesta va fi executat automat la momentul configurat.

  • / etc / cron.zilnic
  • / etc / cron.orar
  • / etc / cron.lunar
  • / etc / cron.săptămânal

De exemplu, pentru a executa un script o dată pe lună, va trebui să îl plasați în / etc / cron.lunar.

Vizualizați joburile Cron

Vizualizați joburile pentru utilizatorul actual

Utilizați următoarea comandă pentru a vizualiza toate lucrările cron programate pentru utilizatorul curent:

$ crontab -l

Vizualizați joburile pentru utilizatorii root

Pentru a vizualiza toate joburile programate ale utilizatorului root, lansați următoarea comandă în Terminal:

$ cat / etc / crontab

Va trebui să vă autentificați ca utilizator root sau să rulați comanda ca sudo.

Vizualizați joburile pentru ceilalți utilizatori

Pentru a vizualiza toate joburile programate ale unui anumit utilizator, lansați următoarea comandă în Terminal înlocuind cu numele de utilizator real:

$ sudo crontab -u -l

Pentru a rula această comandă, veți avea nevoie de privilegii sudo.

Vizualizați joburi cron orare

Pentru a vizualiza toate joburile cron care sunt configurate pentru a rula orar, lansați următoarea comandă în Terminal:

$ ls -la / etc / cron.orar

Vizualizați zilnic joburile cron

Pentru a vizualiza toate joburile cron care sunt configurate să ruleze zilnic, lansați următoarea comandă în Terminal:

$ ls -la / etc / cron.zilnic/

Vizualizați săptămânal joburi cron

Pentru a vizualiza toate joburile cron care sunt configurate să ruleze săptămânal, lansați următoarea comandă în Terminal:

$ ls -la / etc / cron.săptămânal/

Vizualizați joburile cron lunare

Pentru a vizualiza toate joburile cron care sunt configurate să ruleze lunar, lansați următoarea comandă în Terminal:

$ ls -la / etc / cron.lunar/

Faceți backup tuturor locurilor de muncă Cron

Este recomandat să păstrați o copie de rezervă a tuturor lucrărilor cron într-un fișier, astfel încât să puteți recupera în caz de ștergere. Pentru a face o copie de rezervă a tuturor joburilor curente, utilizați operatorul de redirecționare pentru a redirecționa ieșirea crontab -l către un fișier.

$ crontab -l> backup_cron.txt

Eliminarea tuturor locurilor de muncă programate Cron

Pentru a elimina toate joburile cron programate, utilizați marcajul -r după cum urmează:

$ crontab -r

Permisiunea Cron

Putem limita accesul la comanda crontab prin două fișiere: / etc / cron.permit și / etc / cron.nega.

  • / etc / cron.permite - Adăugați utilizatori (unul pe fiecare linie) cărora doriți să le permiteți accesul la comenzile crontab. Acești utilizatori pot rula programarea lucrărilor.
  • / etc / cron.nega - Adăugați utilizatori (unul pe fiecare linie) cărora doriți să le refuzați accesul la comenzile crontab. Acești utilizatori nu pot rula joburi programate.

Generatoare de sintaxă Crontab

Există câteva site-uri web care permit generarea sintaxei pentru crontabs. Aceste site-uri web facilitează generarea expresiei crontab fără a fi nevoie să vă amintiți sintaxa. Deși există diverse site-uri web disponibile pentru generatoarele de sintaxă, cum ar fi crontabgenerator.com, crontab-generator.org și cronmaker.com. Cel pe care îl prefer în mare parte și l-am găsit util este crontab.guru. Pe baza introducerii utilizatorului, generează o expresie crontab pe care o puteți copia-lipi în fișierul crontab.

Concluzie

În acest tutorial, am explicat elementele de bază ale joburilor cron, sintaxa acestuia și modul de configurare. De asemenea, am discutat despre modul de vizualizare a lucrărilor cron, crearea unei copii de rezervă și eliminarea acestora dacă nu mai este nevoie.

Cum se folosește Xdotool pentru a stimula clicurile și tastele mouse-ului în Linux
Xdotool este un instrument de linie de comandă gratuit și open source pentru simularea clicurilor și a apăsărilor de mouse. Acest articol va acoperi u...
Top 5 produse ergonomice pentru mouse de calculator pentru Linux
Utilizarea prelungită a computerului vă provoacă dureri la încheietura mâinii sau la degete? Suferați de articulații rigide și trebuie să vă dați mâin...
How to Change Mouse and Touchpad Settings Using Xinput in Linux
Most Linux distributions ship with “libinput” library by default to handle input events on a system. It can process input events on both Wayland and X...