Kas yra „Cron”? Greitasis užduočių planavimo UNIX ir „Linux” sistemose vadovas

„Cron” yra UNIX ir „Linux” skirta planavimo priemonė. Ji leidžia automatizuoti komandų ar scenarijų paleidimą tam tikru laiku. Šiame straipsnyje paaiškinama, kas yra „cron”, kaip jį naudoti ir kokios yra įprastos jo programos.
Pagrindinės išvados
- „Cron” yra UNIX ir „Linux” skirtas užduočių planuoklis, kuris automatizuoja komandų ir scenarijų vykdymą pagal naudotojo nustatytus tvarkaraščius.
- Norint tiksliai suplanuoti užduotį, labai svarbu suprasti „cron” užduoties sintaksę, kuri apima laiko laukus ir komandas.
- Geriausia „Cron” naudojimo praktika – veiksmingai tvarkyti „crontab” failus, vengti užduočių dubliavimo ir atsižvelgti į laiko juostos poveikį suplanuotoms užduotims.
Supratimas apie „Cron
„Cron” yra UNIX ir „Linux” sistemoms būdingas užduočių planuoklis, skirtas automatizuoti komandų, scenarijų ir sistemos užduočių vykdymą. Sąvoka„Cron darbas” reiškia instrukcijų rinkinį, kuriuo „Cron” vadovaujasi vykdydamas užduotį nurodytu laiku. Šios instrukcijos yra kruopščiai apibrėžtos, nurodant tikslią dieną, laiką ir vykdytiną komandą.
Fone tyliai veikiantis „cron” demonas yra šio automatizavimo variklis. Jis valdo suplanuotų užduočių vykdymą pagal naudotojo nustatytas cron lenteles, todėl administratorius jį pasirenka asmeniniam automatizavimui. Kiekvienas naudotojas gali tvarkyti savo cron lentelę, kad būtų galima vykdyti asmeninį automatizavimą, o sistema taip pat palaiko pasaulinę cron lentelę, skirtą platesniems planavimo poreikiams.
Dėl savo universalumo „Cron” yra labai svarbus įrankis sistemos priežiūrai, administravimui ir kitoms suplanuotoms užduotims atlikti. Nesvarbu, ar norite automatizuoti atsarginių kopijų kūrimą, atlikti reguliarius atnaujinimus, ar net siųsti suplanuotus pranešimus, „Cron” supaprastina šiuos procesus, užtikrindamas, kad jie būtų atliekami tiksliai ir laiku. Gerai išmanydami „Cron”, galite visiškai valdyti savo sistemos automatizavimo galimybes.
Kaip veikia „Cron
Cron demonas veikia kaip laikrodžio demonas, nuolat veikiantis fone ir nustatytu laiku vykdantis suplanuotas komandas. Paprastai paleidžiamas per sistemos iniciaciją, šis demonas užtikrina, kad jūsų „cron” užduotys būtų vykdomos taip, kaip suplanuota. Jei demonas dėl kokios nors priežasties sustabdomas, jis automatiškai vėl paleidžia visas vykdomas užduotis, kai tik vėl pradeda veikti.
„Cron” sukurta siekiant efektyvumo. Jis tikrina crontab failus tik iniciacijos metu arba kai atliekami pakeitimai, o ne reguliariais intervalais, todėl sumažėja sistemos apkrovos. Aptikęs naują arba pakeistą crontab įrašą, demonas atnaujina užduočių sąrašą.
Šis pažangus valdymas užtikrina, kad suplanuotos užduotys būtų vykdomos be nereikalingo vėlavimo ar išteklių naudojimo. Naudojant aplinkos kintamuosius crontab programoje galima išvengti problemų, susijusių su kelio priklausomybėmis, ir užtikrinti sklandų užduočių vykdymą.
„Cron” užduoties sintaksė
Čia pateikiamas tekstas su strateginiu paryškintuoju formatavimu:
„cron” užduoties sintaksė yra ir struktūriška, ir lanksti, todėl galima naudoti įvairias planavimo parinktis. Pagrindinį cron užduoties įrašą sudaro penki laiko ir datos laukai, po kurių eina norima vykdyti komanda, kurios struktūra yra * * * * * command
. Šie laukai reiškia minutę, valandą, mėnesio dieną, mėnesį ir savaitės dieną.
Kiekvienas laukas turi savo galimų reikšmių rinkinį. Pavyzdžiui, minutės laukas svyruoja nuo 0 iki 59, nurodydamas, kiek valandų po valandos bus atliekamas darbas. Valandos laukas nuo 0 iki 23 rodo dienos valandą. Mėnesio dienos laukas svyruoja nuo 1 iki 31, nurodydamas kalendorinę datą, o mėnesio laukas – nuo 1 (sausio mėn.) iki 12 (gruodžio mėn.). Galiausiai savaitės dienos lauke naudojami skaičiai nuo 0 (sekmadienis) iki 6 (šeštadienis). Iš viso yra du laukai, kuriuose nurodomos su laiku susijusios vertės.
Specialieji simboliai, tokie kaip žvaigždutė (*), kablelis (,) ir pasvirasis brūkšnys (/), padidina „cron” užduočių planavimo lankstumą. Žvaigždutė reiškia visas galimas lauko reikšmes, o kablelis – kelias reikšmes. Pasviruoju brūkšniu žymimi intervalai, todėl užduotys gali būti vykdomos reguliariais intervalais. Pavyzdžiui, norėdami atlikti užduotį kas antrą valandą, galite naudoti „0-23/2” arba „/2”.
Išplėstinį planavimą galima atlikti naudojant tokius simbolius kaip hash (#), kuris nurodo n-ąją savaitės dieną per mėnesį, ir paskutinį (L) simbolį, kuris reiškia paskutinę savaitės dieną per mėnesį. Sąrašai ir intervalai dar labiau patikslina planavimą, kai sąrašuose skaičiai atskiriami kableliais, o intervaluose tarp pradžios ir pabaigos reikšmių naudojamas brūkšnys. Be to, eilutėmis galima žymėti skirtingus planavimo formatus kitą savaitės dieną, įskaitant paskutinį penktadienį.
Norint tiksliai ir efektyviai planuoti „cron” užduotis, labai svarbu įvaldyti šio „cron” formato sintaksę.
Pirmojo „Cron” darbo rašymas
Sukurti pirmąją cron užduotį nesudėtinga. Pradėkite redaguodami savo naudotojo crontab failą su crontab -e
, kuris atveria failą numatytuoju teksto redaktoriumi. Pavyzdžiui, norėdami suplanuoti, kad scenarijus būtų vykdomas kasdien 2 val. ryto, naudokite įrašą 0 2 * * * /path/to/script.sh
.
Prieš planuodami rankiniu būdu išbandykite cron užduotis, kad jos veiktų, kaip numatyta. Komandų paleidimas terminale padeda nustatyti tokias problemas, kaip kelio priklausomybės ar leidimų klaidos, prieš joms paveikiant suplanuotas užduotis.
Išplėstinis „Cron” planavimas
Išplėstinis „cron” planavimas leidžia tiksliai valdyti užduočių vykdymą. Tokie simboliai kaip „?” rodo, kad laukas neturi konkrečios reikšmės, „L” reiškia paskutinę mėnesio dieną, o „W” – artimiausią savaitės dieną po nurodytos dienos, taip padedant planuoti savaitgaliais.
Simbolis „#” nurodo n-ąjį savaitės dienos atvejį per mėnesį. Pavyzdžiui, ‘0 8 „5#3” suplanuoja darbą, kuris bus atliekamas kiekvieno mėnesio trečiąjį penktadienį 8 val. ryto. Kelių tvarkaraščių derinimas „cron” išraiškoje leidžia nustatyti sudėtingą laiką, pvz., „0 */6 Mon-Fri”, jei darbas darbo dienomis atliekamas kas šešias valandas.
Išplėstinio planavimo pavyzdžiai – užduočių paleidimas tik darbo dienomis, užduočių planavimas nelyginėmis valandomis, kad būtų išvengta piko valandų, ir užduočių, kurios turi būti vykdomos tam tikra seka, koordinavimas. Įvaldžius šiuos metodus, galima gerokai patobulinti „cron” užduočių valdymą.
„Crontab” failų tvarkymas
Norint patikimai automatizuoti užduotis, labai svarbu efektyviai valdyti crontab failus. Norėdami redaguoti failą, naudokite „crontab -e”, o norėdami parodyti jo turinį – „crontab -l „. Atskirų naudotojų crontab failai saugomi /var/spool/cron/crontabs, pavadinti naudotojo vardu. Norėdami patikrinti, ar crontab failas egzistuoja, šiame kataloge naudokite komandą ‘ls -l’.
Pašalinkite crontab failą naudodami ‘crontab -r’. Būkite atsargūs naudodami komandą crontab be parinkčių, nes ji gali perrašyti esamą failą tuščiu. Norint sukurti arba redaguoti kito naudotojo crontab, reikalingos supernaudotojo privilegijos.
Nustatyti numatytąjį teksto redaktorių crontab galima patikrinus aplinkos kintamąjį EDITOR, kuris, jei nenustatytas, pagal nutylėjimą yra ‘ed’.
Bendri „Cron” užduočių naudojimo atvejai
„Cron” užduotys yra neįkainojamos automatizuojant pasikartojančias užduotis „Unix” tipo sistemose. Dažniausiai jos naudojamos reguliariam atsarginių kopijų darymui, sistemos priežiūrai ir suplanuotoms operacijoms. Pavyzdžiui, suplanavus naktinį atsarginės kopijos kūrimo scenarijų, užtikrinama nuosekli duomenų apsauga be rankinio įsikišimo.
„Cron” užduotys taip pat siunčia kasdienes ataskaitas arba pranešimus, pagrįstus konkrečiomis sistemos sąlygomis. Tinklapių nuskaitymo programos naudoja „cron” užduotis, kad iš svetainių reguliariai išgautų atnaujintą informaciją ir užtikrintų, jog duomenys išliktų aktualūs. Stebėsenos paslaugas galima suplanuoti taip, kad jos kas kelias minutes tikrintų taikomųjų programų ar paslaugų veikimo būklę ir laiku įspėtų apie iškilusias problemas.
Kad užduotys nesidubliuotų, užtikrinkite pakankamus intervalus tarp suplanuotų užduočių. Dėl persidengimo gali kilti konfliktų ir sistema gali būti neefektyvi, todėl labai svarbu kruopščiai planuoti. Naudojant „cron” užduotis šioms užduotims atlikti, sutaupoma laiko ir padidinamas sistemos patikimumas bei našumas.
„Cron” užduoties išvesties tvarkymas
Tinkamas „cron” užduočių išvesties valdymas yra labai svarbus siekiant išlaikyti sistemos efektyvumą ir išvengti netvarkos. Peradresavus išvestį į /dev/null, panaikinami pranešimai el. paštu po užduoties įvykdymo – tai naudinga užduotims, kurių išvestis nereikalinga stebėsenai.
Taip pat galite registruoti „cron” užduočių išvestis į failus, kad vėliau galėtumėte peržiūrėti. Taip užfiksuosite svarbią informaciją, neperpildydami el. pašto dėžutės pranešimais.
Tinkamai tvarkant „cron” užduočių išvestį, sumažėja nereikalingų pranešimų, o tai padeda išlaikyti sistemos efektyvumą ir užtikrinti, kad būtų užfiksuota svarbi informacija.
Geriausia „Cron” naudojimo praktika
Laikantis geriausios „Cron” naudojimo praktikos užtikrinamas patikimas ir veiksmingas užduočių automatizavimas. Į redaguotus crontab įrašus pridėję aprašomųjų komentarų, paaiškinsite kiekvieno darbo paskirtį, todėl laikui bėgant bus lengviau jį valdyti ir šalinti triktis.
Dėl sutampančių „cron” užduočių gali kilti konfliktų, ypač jei užduoties vykdymas užtrunka ilgiau, nei numatyta. Planuokite tvarkaraščius taip, kad jie nesidubliuotų. Cron užduotys taip pat gali nepavykti, jei jos priklauso nuo aplinkos kintamųjų, kurie nėra įkelti į cron aplinką, todėl įsitikinkite, kad scenarijuose aiškiai nustatyti visi reikalingi kintamieji.
Dėl leidimų problemų dažnai nepavyksta atlikti „cron” užduočių. Užtikrinkite, kad užduočių failai priklausytų tinkamam naudotojui ir turėtų reikiamus leidimus. Naudotojai gali kontroliuoti prieigą prie „cron” ir „at” komandų naudodami leidimų ir draudimų failus, kuriuose nurodoma, kurie naudotojai gali naudoti šias komandas. Ši praktika padeda palaikyti sklandų suplanuotų užduočių veikimą.
Laiko juostos ir „Cron
„Cron” užduotys įvertinamos pagal sistemos laiko juostą paleidžiant „cron” demoną. Naudojant laiko juostas, kurios nesikeičia dėl vasaros laiko, paprasčiau planuoti ir išvengti komplikacijų. Svarbiems darbams, kuriems reikia pastovaus laiko, patartina planuoti UTC.
Perėjimas į vasaros laiką ir iš jo gali turėti įtakos „cron” užduočių vykdymo laikui, todėl labai svarbu stebėti šį laiką. Jei užduočiai reikia konkretaus kadencijos laiko, pasirinkite laiko zoną, kurioje nesilaikoma vasaros laiko, ypač kai keičiasi saulė.
Nustatykite konkrečią laiko juostą cron užduočiai, nustatydami kintamąjį TZ cron įrašo pradžioje. Taip užtikrinama, kad užduotys būtų paleistos norimu laiku, neatsižvelgiant į sistemos laiko pokyčius.
„Cron” užduočių trikčių šalinimas
Reguliariai tikrinant „cron” užduočių žurnalus labai svarbu stebėti našumą ir anksti nustatyti problemas. Jei „cron” darbas neveikia taip, kaip tikėtasi, ieškodami sistemos žurnaluose užduoties vykdymo įrašų, galite sužinoti apie galimas problemas.
Bandant komandas „cron” aplinkoje galima aptikti problemų, kurių neatsiranda, kai komandos paleidžiamos tiesiogiai komandų eilutės terminale. Šis veiksmas labai svarbus diagnozuojant problemas, susijusias su šakninio kelio priklausomybėmis arba aplinkos kintamaisiais.
Būdami budrūs ir iniciatyvūs užtikrinkite, kad jūsų cron užduotys veiktų sklandžiai ir efektyviai.
Santrauka
„Cron” yra galingas įrankis, kuris pakeičia užduočių valdymą ir automatizavimą UNIX ir „Linux” sistemose. Šiame vadove aprašyti svarbiausi veiksmingo „Cron” naudojimo dalykai – nuo pagrindinės sintaksės supratimo iki pažangių planavimo metodų įvaldymo. Laikydamiesi geriausios praktikos ir tinkamai tvarkydami „crontab” failus, galite užtikrinti patikimą ir veiksmingą užduočių automatizavimą.
Įdiegę šiuos metodus pamatysite, kad „Cron” tampa nepakeičiama jūsų sistemos administravimo įrankių rinkinio dalimi. Pasinaudokite automatizavimo galia ir kontroliuokite savo sistemos našumą bei patikimumą. Galimybės yra neribotos, nes „Cron” yra jūsų dispozicijoje.
Dažnai užduodami klausimai
Kas yra cron darbas?
„cron” užduotis iš esmės yra UNIX ir „Linux” sistemose suplanuota užduotis, kuria automatizuojamas komandų vykdymas nurodytu laiku ir nurodytomis datomis. Ši funkcija yra neįkainojama norint efektyviai valdyti įprastas užduotis.
Kaip redaguoti crontab failą?
Norėdami redaguoti crontab failą, terminale naudokite komandą „crontab -e”, kuri jį atidarys numatytuoju teksto redaktoriumi, kad galėtumėte lengvai keisti.
Kaip išvengti sutampančių „cron” užduočių?
Norėdami išvengti sutampančių „cron” užduočių, kruopščiai planuokite tvarkaraščius, užtikrindami pakankamus laiko intervalus tarp užduočių. Taip išvengsite konfliktų ir užtikrinsite sklandų užduočių vykdymą.
Ką daryti, jei mano „cron” darbas neveikia?
Jei cron darbas neveikia, pradėkite nuo cron darbo ir sistemos žurnalų, ar juose nėra vykdymo įrašų, ir išbandykite cron aplinkoje esančias komandas, kad nustatytumėte problemą.
Kaip efektyviai tvarkyti „cron” užduoties išvestį?
Efektyviai tvarkykite „cron” užduočių išvestį nukreipdami ją į /dev/null, kad pranešimai nebūtų siunčiami, arba įrašydami ją į failus, kad galėtumėte peržiūrėti ateityje. Šis metodas padeda išlaikyti darbo užduočių generuojamos informacijos kontrolę.