Ta članek bo razložil razporejanje nalog in izvajanje skriptov v rednih časovnih presledkih z uporabo opravil cron.
Kaj je Cron?
Cron je program za razporejanje opravil, ki deluje v ozadju kot proces. Z njim lahko občasno izvajate določena opravila, ki so razporejena z uporabo vnaprej določenega nabora pravil. Cron je prednameščen v večini distribucij Linuxa ali je na voljo v repozitorijih, ki jih je treba namestiti ročno.
Cron Presets
Cron v Ubuntuju ima nabor vnaprej določenih načrtovalnikov. Preverite jih lahko tako, da zaženete spodnji ukaz:
$ ls / etc / cron.*Običajno so te mape “/ etc / cron.urno "," / etc / cron.dnevno "," / etc / cron.mesečno «in» / etc / cron.tedensko ".
Samo vstavite želene skripte v eno od teh map, da boste lahko samodejno izvajali naloge na uro, dnevno, mesečno ali tedensko.
Upoštevajte, da cron privzeto uporablja lupino “/ bin / sh”. Če želite uporabiti “/ bin / bash” kot lupino v skripti cron, morate uporabiti “!# / bin / bash ”hashbang na vrhu datoteke skripta ali definirajte lupino kot spremenljivko“ SHELL = / bin / bash ”v prvi vrstici načrtovanega bash skripta. Preglasitev spremenljivke okolja »SHELL« deluje tudi za spodaj pojasnjen urejevalnik crontab.
Vse spremenljivke sistemskega okolja morda niso izpostavljene opravilom cron. Zato je na splošno dobro, da ročno definirate pomembne spremenljivke okolja v skriptu, ki ga načrtuje cron.
Crontab
Crontab vam omogoča, da določite svoje načrtovane naloge. Z njo lahko konfigurirate urnike cron, ki se razlikujejo od zgoraj pojasnjenih štirih standardnih prednastavitev cron.
Če želite nastaviti načrtovano opravilo v crontab, najprej zaženite urejevalnik crontab z uporabo spodnjega ukaza:
$ crontab -eZdaj na koncu datoteke lahko dodate vnos v naslednji obliki:
minuta ura dan mesec delovni dan / polna / pot / do / skripta.shKje:
- minuta: poljubna vrednost v območju od 0 do 59
- ura: katera koli vrednost v območju od 0 do 23, 0 je polnoč
- dan: katera koli vrednost v razponu od 1 do 31
- mesec: katera koli vrednost v razponu od 1 do 12
- delovni dan: katera koli vrednost v območju od 0 do 6, 0 je nedelja
Spodnji vnos crontab bo posnel posnetek zaslona vašega namizja in ga shranil v vaš domači imenik 2. marca ob 15:13, plus vsak torek v marcu ob 15:13.
13 15 2 3 2 skrotČe želite seznam vseh vnosov crontab, uporabite spodnji ukaz:
$ crontab -lVeč primerov
Naloge Cron je mogoče najbolje razložiti s primeri, zato je spodaj nekaj primerov, ki bodo občasno posneli posnetke zaslona vašega namizja in jih shranili v domačo mapo.
Poleg petih spremenljivk razporejanja cron za razporejanje opravil uporablja tudi poseben niz. Ti nizi so:
- @hourly: opravilo se izvaja vsako uro
- @daily / @midnight: delo se izvaja vsak dan
- @teden: delo poteka enkrat na teden
- @ mesečno: delo se izvaja enkrat mesečno
- @ leto / @ ročno: delo poteka enkrat letno
- @reboot: opravilo se zažene enkrat ob vsakem ponovnem zagonu / prijavi
Spodnji vnos crontab bo naredil posnetek zaslona enkrat ob vsakem ponovnem zagonu:
@reboot scrot“@Reboot” lahko zamenjate s katerim koli drugim zgoraj omenjenim posebnim nizom.
Uporaba zvezdice ali nadomestnega znaka namesto katere koli od petih spremenljivk bo ponovila opravilo na vseh novih primerkih te spremenljivke. Spodnji vnos bo vsako minuto posnel posnetek zaslona:
* * * * * ScrotVsako uro:
0 * * * * scrotVsak dan ob 18:00:
0 18 * * * skrotVsak mesec 6. ob 18:00:
0 18 6 * * skrotUporabite “/” za zagon skripta v določenem periodičnem intervalu 30 minut (izvaja se vsakih 30 minut):
* / 30 * * * * scrotSpremenljivke, ločene z vejicami, lahko uporabite za določanje ponovitve izvajanja skripta v rednih intervalih. Spodnji primer bo posnel posnetek zaslona namizja vsako 1., 4. in 5. minuto nove ure.
1,4,5 * * * * skrotPreverjanje vnosov v Crontab
Določitev vnosov crontab je lahko zapleteno, vendar je odpravljanje napak ali preverjanje, ali delujejo na pravilnih časovnih žigov, še bolj zapleteno. Ena od možnosti je uporaba navideznega stroja in beleženje časovnih žigov skripta, ki se občasno izvaja v opravilu cron, tako da vključite nekaj takega kot ukaz »datum« in preusmerite izhod v besedilno datoteko. Vendar je boljša rešitev uporaba ene od številnih spletnih storitev za testiranje delovnih mest, ki so na voljo v spletu. Priporočam, da na voljo spletno mesto cron tester tukaj poskusiti.
Zaključek
Izvajanje opravil cron je odličen način za avtomatizacijo ponavljajočih se nalog, zlasti na strežnikih. Orodje je izjemno zmogljivo in prilagodljivo. Vendar je pomembno, da se prepričate, da vaša definicija načrtovalca deluje pravilno, še posebej, če obstajajo naloge, ki so kritične.