Cron vai Cron darbs ir uz laiku balstīts plānotājs, kas izplatīts Linux / Unix sistēmās. Tas ieplāno noteiktus lietotāja uzdevumus periodiski izpildīt noteiktā datumā, laikā vai intervālos. Lielākā daļa šo uzdevumu ir skripti, lai veiktu tādas funkcijas kā dublēšana un citas darbības. Lai izveidotu šīs cron darba vietas, mēs izmantojam crontab komandas. Crontab ir UNIX komanda / utilīta, ko izmanto, lai izveidotu un pārvaldītu cron darbus.
Kā jūs redzēsiet tālāk, cron darba izveidošana un rediģēšana ir diezgan vienkārša. Pārsteidzošākais ir tas, ka pēc cron darba izveides vai rediģēšanas jums nav nepieciešams restartēt cron vai pat datoru. Vienkārši saglabājiet failu, un jums ir labi iet.
Cron Jobs bieži izmanto
- Aparatūras laika iestatīšana: tīkla laiks protokolu izmanto daudzi datori, lai iestatītu sistēmas laiku, bet nenosaka aparatūras laiku. Izmantojot cron, varat iestatīt aparatūras laiku, pamatojoties uz sistēmas laiku.
- Uzdevumu plānošana un ikdienas programmu palaišana: Izmantojot cron pakalpojumu, varat palaist daudzus sistēmas pakalpojumus, kuriem nepieciešama ikdienas uzvedne, piemēram, Logwatch.
- Automātiska direktoriju tīrīšana, dublēšanas programmu palaišana un daudz kas cits.
Cron komandas pamatdaļas
Crontab standarta sintakse ir šāda:
a b c d e USERNAME / path / to / script izvadi
1.Laiku un datumu, kā arī atkārtotā darba precizitāti nosaka pieci lauki:
-
- a: Protokols: (Sākot no 0 - 59)
- b: Stundas: (Sākot no 0 - 23 )
- c: Dienas: (Sākot no 0 - 31 )
- d: Mēneši: (sākot no 0 - 12 )
- e: Nedēļas dienas: (sākot no 0 - 7. )
- a: Protokols: (Sākot no 0 - 59)
Piezīme: Dienas sākas ar pirmdienu. 0 un 7 apzīmē svētdienu
2. USERNAME
: Atcerieties to aizstāt ar savu lietotājvārdu
3. Konkrēto cron izpildāmo vietu un skriptu nosaka trešais segments:
/ path / to / script
4. Pēdējā sadaļā paziņojums lietotājam pēc darba pabeigšanas ir definēts kā veids, kā sekot līdzi uzdevumiem:
izlaide
Tomēr jūsu iesūtne var būt pilna ar nelieliem uzdevumiem, kas tiek bieži novirzīti. Lai no tā izvairītos, varat atspējot automātisko e-pasta izvadi, komandai cron pievienojot zemāk esošo virkni:
> / dev / null 2> & 1 e.g a b c d e Lietotājvārds / ceļš / uz / skripts> / dev / null 2> & 1
Turklāt cron izmanto vēl četras vērtības, kas tiek izmantotas, lai laukā norādītu vairākas vērtības. Viņi ir:
- Zvaigznīte (*): Attiecas uz visām lauka vērtībām.
- Komats (,): Izmantojiet, lai atdalītu vērtību sarakstu cron komandā.
- Domuzīme (-): Norādiet vērtību diapazonu.
- Uz priekšu slīpsvītra (/): sadala vērtību dažādos posmos.
Cron darbu iestatīšana
Crontab komandas ir atbildīgas par cron darbu izveidi un rediģēšanu, jo cron failus nevajadzētu rediģēt tieši. Crontab nosaka, kā jūs varat izveidot, rediģēt, uzskaitīt, atkļūdot, instalēt un atinstalēt cron uzdevumus.
Pirms sākt darbu ar cron darbiem, ir svarīgi pārliecināties, vai Linux darbvirsma vai serveris ir atjaunināts, izpildot tālāk norādītās komandas:
sudo apt atjauninājums
Ja jūsu sistēmā nav instalēta cron pakotne, instalējiet to ar zemāk esošo komandu:
sudo apt-get install cron
Kā rediģēt crontab failu?
Lai pabeigtu procesu, jums būs jākonfigurē cron darbs. Lietotājs, kurš pieteicies, kad tiek izveidots cron darbs, automātiski kļūst par īpašnieku. To var mainīt, izveidojot darba īpašnieku, kurš būs atbildīgs par cron darba vadību, kā mēs redzēsim šajā amatā.
Lai atvērtu crontab konfigurācijas failu pašreiz reģistrētajam lietotājam, izpildiet tālāk norādīto komandu:
crontab -e
Sistēma jums liks izvēlēties piemērotu redaktoru. Mūsu gadījumā mēs izvēlēsimies pirmo iespēju (nano redaktors).
Katrā rindā varat pievienot vienu ieplānoto uzdevumu atbilstoši savām vēlmēm.
Pēc uzdevumu pievienošanas pabeidziet failu saglabāšanu un izeju. Cron dēmons izlasīs un izpildīs visas sniegtās instrukcijas. Izmaiņas tiks piemērotas pat bez sistēmas restartēšanas, jo krātuve tiek automātiski atjaunināta.
Rediģēt crontab citam lietotājam
Crontab var rediģēt dažādiem lietotājiem, izmantojot komandu zemāk esošajā sintaksē:
crontab -u cits_lietotājvārds -e
Kā izmantot īpašās rakstzīmes crontab komandās
Rakstzīmes un operatori nosaka lielāku jūsu sistēmas pielāgošanu, jo tie paplašina cron uzdevuma iespējas.
- Slīpsvītru izmanto, lai sadalītu laika virkni noteiktos soļos. Piemēram, lai dublētu ik pēc 30 minūtēm, mēs varam izmantot:
* / 30 * * * *
- Zvaigznīte (*) tiek izmantota visu izpildāmo vērtību izpildei. Piemēram:
* / 15 ***
- Domuzīme (-) tiek izmantota, lai noteiktu darbību diapazonu, piemēram, dienu skaitu. Priekš
Piemēram, palaižot kodu katru darba dienu plkst. 6:00, mēs to izmantosim;
0 6 * * 1-5 / sakne / dublējums.sh
Šeit 06 apzīmē 6:00. 1–5 nozīmē dienu skaitu (no pirmdienas līdz piektdienai).
- Komats norāda atsevišķus gadījumus, kad kodam vajadzētu darboties:
0 4 * * 2,4 / sakne / dublējums.sh
Iepriekš minētā komanda izpildīs jūsu skripta kodu otrdien un ceturtdien plkst. 4:00.
- Varat arī kombinēt dažādas aizstājējzīmes, lai vēl vairāk pielāgotu komandas. Piemēram, lai izpildītu skriptu katru otro dienu 35 minūtes pēc stundas, mēs varam izmantot tālāk norādīto komandu:
35 1-23 / 2 * * * / ceļš / uz / skripts / skripts.sh
1.-23 norāda stundu diapazonu, / 2 nosaka intervālu uz katru otro stundu.
Cron opcijas
- Uzskaitiet visus cron darbus
Varat uzskaitīt cron darbus savā sistēmā, neatbloķējot crontab konfigurācijas failu. To var izdarīt, palaižot savu termināli un ierakstot zemāk esošo komandu:
crontab -l
Šajā komandā ir uzskaitīti visi jūsu sistēmā esošie cron darbi.
- Dzēst visus crontab darbus
Lai izdzēstu visas crontab komandas, varat izmantot tālāk norādīto komandu:
crontab -r
- Dzēst cron darbu citam lietotājam.
crontab -r -u cits lietotājvārds
Izmantojiet virknes Crontab
Stīgas ir izstrādātājiem ārkārtīgi noderīgi rīki, jo tie izvairās no atkārtotas koda segmentu rakstīšanas. Par laimi, crontabs atbalsta dažādas virkņu vērtības. Tie ietver:
@hourly:
-tas pats, kas - “0 * * * *“ (Izpilda vienu reizi katru reizi stunda)@ pusnakts:
-tas pats, kas - “0 0 * * *” (Izpilda reizi katrā diena)@ katru dienu:
tas pats, kas pusnakts@iknedēļas:
-tāds pats kā - “0 0 * * 0” (Izpilda katru reizi nedēļu)@ mēnesi:
-tāds pats kā - “0 0 1 * *” (Izpilda vienu reizi katru reizi mēnesī)@ katru gadu:
-tāds pats kā - “0 0 1 1 *” (Izpilda katru reizi gadā)@gadīgi:
līdzīgi kā @ katru gadu@reboot:
Izpildīts vienu reizi pēc katras atsāknēšanas / restartēšanas / startēšanas.
Labs piemērs; ja jums ir rezerves skripts, kuru vēlaties palaist katru dienu, izmantojiet zemāk esošo komandu:
@daily / path / to / backup_script.sh
Cron darbu piemēri
Šeit ir saraksts ar pamata cron darbiem, kurus var izmantot, sākot:
-
- Lai katru minūti palaistu skriptu:
* * * * * / jūsu / skripts / ceļš.sh
- Lai palaistu skriptu ik pēc 40 minūtēm:
40 * * * * / jūsu / skripts / ceļš.sh
- Lai katru stundu palaistu skriptu:
0 * * * * / jūsu / skripts / ceļš.sh
- Lai palaistu skriptu katru pusnakti:
0 0 * * * / jūsu / skripts / ceļš.sh
- Lai palaistu skriptu ik pēc 23 minūtēm pēc pusnakts, pulksten 2:00 un 4:00 katru dienu:
23 0-23 / 2 * * * / jūsu / skripts / ceļš.sh
- Lai palaistu skriptu plkst. 4.05 katru svētdienu.
5 4 * * saule / tavs / scenārijs / ceļš.sh
- Lai palaistu skriptu nedēļas laikā pulksten 22:00.
0 22 * * 1-5 / tavs / skripts / ceļš.sh
- Lai palaistu skriptu 1. decembrī - pusnaktī.
0 0 0 12 * / jūsu / skripts / ceļš.sh
- Lai palaistu scenāriju sestdienas pusnaktī.
0 0 * * 6 / jūsu / skripts / ceļš.sh
- Lai katru stundu palaistu skriptu.
0 * * * * / jūsu / skripts / ceļš.sh
- Lai katru minūti palaistu skriptu:
Izmantojot šos pamatpiemērus, jūs iegūsit dziļāku izpratni par secību un to, kā to var modificēt.
Cron piekļuves ierobežošana
Mēs redzam, ka cron darbi var būt diezgan noderīgi, it īpaši, ja vēlaties automatizēt savus uzdevumus. Tomēr tas var būt arī riskanti, ja sistēma ļauj jebkuram lietotājam izveidot krona darbu. Pat ja tas neietekmē personas datus, dažiem cron darbiem var būt nepieciešams diezgan daudz sistēmas resursu, tādējādi atpaliekot no datora. Lai izvairītos no šādiem scenārijiem, sistēmas administrators (root lietotājs) var izveidot / etc / cron.Atļaut
vai / etc / cron.noliegt
fails, kurā ir tikai lietotāji, kuri to var "izveidot / neveidot" cron darbs.
The / etc / cron.Atļaut
failā ir lietotāji, kuri var izveidot, rediģēt, parādīt vai noņemt crontab failus. Ja šī faila nav, visi lietotāji var izveidot un pārvaldīt citas Cron darba vietas, nevis tās, kas atrodas / etc / cron.noliegt
failu. Ja neviena no šiem failiem nav, lai palaistu komandu crontab, ir nepieciešamas lietotāja tiesības.
Tagad, kad esat liedzis lietotājiem, kas nav root, izveidot cron darbavietas, ja viņiem tādas jau bija, varat apsvērt iespēju pievienot viņu cron darbus root crontab failā. Bet šeit ir mīkla - vai, pievienojot savus cron darbus saknes crontab, vai tas nedarbina viņu cron darbus kā root? Nu, šeit ir nozīme laukam USERNAME, kuru mēs iepriekš apspriedām cron komandu sintaksē. Piemēram, zemāk esošā komanda:
0 * * * * fosslinux / path / to / script.sh
Darbosies kā lietotāja “fosslinux” cron darbs, nevis kā root lietotājs.
Secinājums
Tagad jums ir skaidrs ceļvedis par Cron darbu izmantošanu dažādu uzdevumu automatizēšanai jūsu sistēmā. Tam nevajadzētu sajaukt jūs ar Startup lietojumprogrammām. Izmantojiet iepriekš minētos piemērus, lai mēģinātu automatizēt vienkāršus skriptus. Laika gaitā jūs varat apvienot īpašās rakstzīmes un aizstājējzīmes, lai veiktu daudz ikdienišķākus uzdevumus. Ja jūs tikko sākat, būtu lieliski izlasīt mūsu ierakstu par bash skriptu apmācību ar piemēriem, kas palīdzēs jums izveidot savu pirmo skriptu.