Pradžia - Maršrutizatoriaus nustatymas
Cron – paleidžia vartotojo programas nurodytu laiku. „Cron“ nustatymai: funkcijos, nuoseklios instrukcijos ir apžvalgos „Cron“ tvarkaraštis

(Suplanuotos užduotys) naudojamas konfigūruoti komandų vykdymą pagal tvarkaraštį arba griežtai nustatytu laiku. Naudojant CronTab Galite nustatyti konkretų laiką, o jūsų nurodyta komanda bus įvykdyta būtent tuo metu. Konfigūruoti CronTab tai įmanoma taip, kad užduotis būtų vykdoma vieną kartą mėnuo, dieną, valandą Ir kiekvieną minutę arba pvz. kas 10 minučių. Taip pat galite derinti, pavyzdžiui, pirmąsias 2 valandas užduotį reikia atlikti kartą per valandą, o paskui kitas 2 valandas jos neatlikti.

Taip pat vienas iš patogumų – galimybė užduočių atlikimo rezultatus siųsti el. Norėdami tai padaryti, spustelėkite atitinkamą užrašą ir įveskite savo el.

Užduočių meistras

Pirmoji pažintis su Cron mums tai prasideda atradimu Quest Masters. Naudodami vedlį galite sukonfigūruoti scenarijų vykdymo laiką be rimtų administravimo žinių tiesiog pasirinkdami iš išskleidžiamųjų sąrašų tam tikras derinys. Taip pat turite įvesti kelią į scenarijų arba komandą, kuri bus vykdoma Cron.

Pažiūrėkime, kaip vykdomas ta kalba parašyta scenarijus PERL, kurį reikia paleisti kas 5 minutes.

Paspaudus mygtuką, po pagrindiniu langu Cron atsiras naujas įrašas su pirmąja konfigūracija. Tokių įrašų skaičius neribojamas.

Dabar turime pirmąją galimą užduotį įjungti/išjungti, pakeisti arba ištrinti naudodami mygtukus, esančius dešinėje priešais kiekvieną užduotį:

Įjungti/išjungti užduotį;
- pakeisti užduotį;
- ištrinti užduotį.

Rankinis CronTab konfigūravimas.

Taip pat skyriuje yra rankinis nustatymas, kuri leidžia įprastu būdu konfigūruoti scenarijaus paleidimo laiką tiems, kurie yra susipažinę su Cron.

Laikas, intervalas

Minutės gali būti nuo 0 į 59
Valandos gali būti nuo 0 į 23
Mėnesio diena gali būti nuo 1 į 31
Gal mėnesį 1 į 12
Savaitės diena gali būti nuo 0 į 7 , kur 0 ir 7 yra sekmadienis

Galima konfigūruoti CronTab užduotis atlikti ne tik tam tikru laiku
laiko, bet ir kiekvieną minutę, valandinis, kasdien, kas savaitę arba kas mėnesį,
naudojant derinį */x

Pavyzdžiai

*/5 * * * * - paleiskite komandą kas penkias minutes
0 */3 * * * - paleisti kas tris valandas
0 12-16 * * * - paleiskite komandą kas valandą nuo 12 iki 16 (12, 13, 14, 15 ir 16 val.)
0 12,16,18 * * * - paleiskite komandą kas valandą 12, 16 ir 18 val.

*/1 * * * * /usr/bin/php ~/site.ru/public_html/test.php- php scenarijaus test.php paleidimas kas minutę
0 */1 * * * /usr/bin/perl ~/site.ru/public_html/test.pl- kas valandą paleidžiamas perl scenarijus test.pl

Komanda

Turite nustatyti scenarijaus kelią iš savo namų katalogo
Pavyzdžiui: public_html/cgi-bin/script.pl
Sistema pakeis patį simbolį ~/ (šis derinys pakeičia visą kelią)
Tai paaiškės: ~/public_html/cgi-bin/script.pl
Jei įdėsite simbolį kelio gale & (ampersand), tada scenarijus bus paleistas fone.
Šio simbolio nustatymas yra neprivalomas.

Mūsų medžiagoje, skirtoje Ubuntu serveris Kartkartėmis iškyla tam tikrų užduočių atlikimo pagal grafiką klausimas. Kad nereikėtų kaskart aiškinti to paties, nusprendėme sukurti šią medžiagą, kuri turėtų padėti sistemos administratoriai valdyti ir efektyviai naudoti užduočių planuoklį sistemoje „Linux“.

Ubuntu serveryje jis naudojamas kaip užduočių planuoklis cron- planuotojas su sąsaja komandinė eilutė. Ji yra svarbi sistemos dalis ir pradeda veikti iškart po įdiegimo, atlikdama įvairias sistemos užduotis. Mūsų tikslas – tai padaryti mūsų paslaugomis, juolab kad tai nėra taip sunku, kaip atrodo.

Yra dviejų tipų tvarkaraščiai cron: vartotojas ir sistema. Jie skiriasi tuo, kad pirmasis yra sukurtas vartotojų ir vykdomas atsižvelgiant į vartotojo teises, antrasis naudojamas administravimo ar sistemos tikslais ir gali būti paleistas bet kurio vartotojo vardu.

Norėdami sukurti arba pakeisti pasirinktinį tvarkaraštį, įveskite komandą:

Crontab -e

Kai paleidžiate pirmą kartą, programa paragins pasirinkti redaktorių mcedit(reikia įdiegti mc) arba kitą redaktorių, su kuriuo žinote, kaip dirbti.

Tvarkaraščio eilučių formatas yra toks:

minutė valanda diena mėnuo diena_savaitės komanda

  • Minutė- laikas minutėmis nuo 0 iki 59
  • Valanda- nuo 0 iki 23
  • Diena- mėnesio diena nuo 1 iki 31
  • Mėnuo- nuo 1 iki 12 arba raidžių pavadinimai sausio - gruodžio mėn
  • Savaitės diena- nuo 0 iki 6 (0 - sekmadienis) arba šeštadienis - sekmadienis
  • Komanda- komandų interpretatoriaus formato eilutė, kuri bus vykdoma, rašoma kaip komanda1 ir& komanda2 paleisti kelias komandas iš eilės.

Minučių, valandų, dienų reikšmės gali būti nurodytos taip:

  • Reikšmė- skaičius, nurodantis datą arba laiką, pakaitos simbolis leidžiamas * leidžiantis visą verčių diapazoną
  • Kelios reikšmės- leidžiama nurodyti kelias reikšmes, atskirtas kableliais, pavyzdžiui, 2,14,22
  • Vertybių diapazonas- nurodomas brūkšneliu, pavyzdžiui, 2-10
  • Vertės žingsnis- nurodoma per trupmeną, kurios vardiklis yra žingsnis, pavyzdžiui, */3 - kas trečia reikšmė 0, 3, 6, 9 ir kt. Skaitiklis turi būti reikšmių diapazonas arba žvaigždutė.

Apsvarstykite šį įrašo pavyzdį:

0 8-19/2 * * 1 /namai/ivanov/testas

Tai reiškia, kad kas antrą valandą nuo 8 iki 19 (8, 10, 12, 14, 16) pirmadieniais paleiskite bandomąjį scenarijų Ivanovo namų kataloge.

Iš karto norime perspėti dėl dažnos klaidos: nurodant periodinį vykdymą, visos datos turi būti nurodytos aiškiai, žvaigždutė nurodo visą reikšmių diapazoną, o ne jų nebuvimą. Pavyzdžiui, jei jums reikia vykdyti tam tikrą scenarijų kas valandą nuo 10 iki 15, tai būtų neteisinga:

* 10-15 * * * /namai/ivanov/testas

Šioje eilutėje bus paleistas scenarijus kiekvieną minutę intervale nuo 10 iki 15 valandų. Tai bus teisinga:

0 10-15 * * * /namai/ivanov/testas

Šis įrašas leis scenarijui paleisti kiekvienos nurodyto diapazono valandos pradžioje.

Be datos, galite naudoti keletą specialių eilučių:

  • @perkrauti- paleiskite komandą iš naujo
  • @kasmet arba @kasmet- vykdyti sausio 1 d., panašiai kaip įrašas: " 0 0 1 1 * "
  • @kas mėnesį- atlikti kiekvieno mėnesio 1 dieną, panašiai kaip " 0 0 1 * * "
  • @kas savaitę- atlikti kiekvieną sekmadienį, atitinkantį " 0 0 * * 0 "
  • @kasdien arba @vidurnaktis- kiekvieną dieną vidurnaktį" 0 0 * * * "
  • @valandinis- kartą per valandą, 0 * * * * "

Taigi kasdieniniam mūsų scenarijaus vykdymui kiekvieną vidurnaktį galite parašyti:

@midnight /home/ivanov/test

Baigę sudaryti tvarkaraštį, išsaugokite failą ir išeikite iš redaktoriaus. Pasirinktinis tvarkaraštis bus išsaugotas /var/spool/cron/crontabs dabartinio vartotojo vardu.

Pateikiamas failas sistemos ir administravimo užduotims atlikti /etc/crontab Jame esančių įrašų sintaksė išsiskiria tuo, kad yra papildoma vertė - vartotojas, kurio vardu bus paleista užduotis:

minutė valanda diena mėnuo diena_savaitės vartotojo komanda

Tokio įrašo pavyzdys:

0 19 * * 1-5 šaknis /etc/backup

Pagal tai 19:00 nuo pirmadienio iki penktadienio scenarijus bus paleistas /etc/backup vartotojo vardu šaknis.

Šiame faile taip pat yra sistemos tvarkaraščiai, todėl jį redaguoti reikia atsargiai. Ten turėtų būti išdėstytos visos sistemos ir administracinės užduotys.

Kaip matome cron Tai gana paprasta naudoti, tačiau tuo pat metu suteikia daug galimybių nustatyti tvarkaraščius Ubuntu serveryje. Tikimės, kad šis straipsnis padės administratoriams įsisavinti šį įrankį.

MIN VALANDA DOM MON DOW CMD

Lentelė: „Crontab“ laukai ir galiojantys diapazonai („Linux Crontab“ sintaksė)

1. Užduočių planavimas tam tikram laikui

Cron naudojimo pagrindas yra atlikti užduotis tam tikrą laiką kaip parodyta žemiau. Birželio 10 d. 8.30 val. bus paleistas visas atsarginis scenarijus.

Atkreipkite dėmesį, kad laiko lauke naudojamas 24 valandų formatas, todėl 8:00 yra 8, 20:00 yra 20 valandų.

30 08 10 06 * /home/developer/full-backup

  • 30-30 minučių
  • 08-08 val
  • 10-10 diena
  • * – kiekvieną savaitės dieną

2. Suplanuokite užduotis, kurios turi būti atliekamos dažniau (pvz., du kartus per dieną)

Šis scenarijus naudoja papildomą atsarginė kopija du kartus per dieną kiekvieną dieną. Šis pavyzdys kiekvieną dieną atlieka laipsnišką atsarginę kopiją 11:00 ir 16:00. Kableliais atskirtos reikšmės lauke rodo, kad komanda turi būti vykdoma kiekvienu nurodytu laiku.

00 11.16 * * * /home/developer/bin/incremental-backup

00 – 0 minutė (valandos pradžia) 11, 16 – 11 ir 16 valandų * - kiekvieną dieną * - kiekvieną mėnesį * - kiekvieną savaitės dieną

3. Suplanuokite darbus tam tikru laiko intervalu (pvz., tik darbo dienomis)

Jei norite, kad tvarka būtų vykdoma kas valandą tam tikru laiko intervalu, naudokite toliau nurodytus veiksmus.

Cron rutina kiekvienai dienai darbo valandomis

Šiame pavyzdyje duomenų bazės būsena tikrinama kiekvieną dieną (įskaitant savaitgalius) darbo valandomis nuo 9 iki 18 val.

00 09-18 * * * /home/developer/bin/check-db-status

00 - 0 minutė (valandos pradžia) 09-18 - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 (valandos) * - kiekvieną dieną * - kiekvieną mėnesį * - kiekvieną dieną savaitę

Cron rutina kiekvienai darbo dienai darbo valandomis

Šis pavyzdys tikrina duomenų bazės būseną kiekvieną savaitės dieną (išskyrus šeštadienį ir sekmadienį) nuo 9 iki 18 val.

00 09-18 * * 1-5 /home/ramesh/bin/check-db-status

00 - 0 minutė (valandos pradžia) 09-18 - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 (valandos) * - kiekvieną dieną * - kiekvieną mėnesį 1-5 - pirmadienis, Antradienis, trečiadienis, ketvirtadienis ir penktadienis (kiekvieną savaitę)

4. Kaip peržiūrėti Crontab įrašus?

Peržiūrėkite dabartinius vartotojo Crontab failus.

Norėdami peržiūrėti savo crontab-l failus iš viršaus sąskaitą unix, atlikite šiuos veiksmus.

Developer@dev-db$ crontab -l @yearly /home/developer/annual-maintenance */10 * * * * /home/developer/check-disk-space

Peržiūrėkite šakninius crontab įrašus

Prisijunkite kaip root naudotojas (su - root) ir paleiskite crontab-l, kaip parodyta žemiau.

Root@dev-db# crontab -l nėra crontab root

Norėdami peržiūrėti kitų vartotojų failus, prisijunkite kaip root ir naudokite -u (naudotojo vardas) -l, kaip parodyta žemiau.

Root@dev-db# crontab -u vartotojo vardas -l @monthly /home/username/monthly-backup 00 09-18 * * * /home/username/check-db-status

5. Kaip redaguoti crontab įrašus?

Dabartinių vartotojo cron įrašų redagavimas.

Norėdami redaguoti įrašus, naudokite cronab -e, kaip parodyta toliau. Pagal numatytuosius nustatymus naudotojo esami crontab įrašai bus redaguojami.

Developer@dev-db$ crontab -e @yearly /home/developer/centos/bin/annual-maintenance */10 * * * * /home/developer/debian/bin/check-disk-space ~ "/tmp/crontab .XXXXyjWkHw" 2L, 83C

Kai įrašysite failą, jis išsaugos crontab ir parodys šį pranešimą, nurodantį, kad crontab buvo sėkmingai modifikuotas.

~ "crontab.XXXXyjWkHw" 2L, 83C parašyta crontab: naujo crontab diegimas

Root crontab įrašų redagavimas

Prisijunkite kaip root naudotojas (su - root) ir atlikite crontab -e, kaip parodyta žemiau.

Root@dev-db# crontab -e

Kito vartotojo crontab įrašų redagavimas

Norėdami redaguoti kito asmens crontab įrašą Linux vartotojas, prisijunkite kaip root ir naudokite -u (naudotojo vardas) -e, kaip parodyta toliau.

Root@dev-db# crontab -u vartotojo vardas -e @monthly /home/username/fedora/bin/monthly-backup 00 09-18 * * * /home/username/ubuntu/bin/check-db-status ~ ~ ~ "/tmp/crontab.XXXXyjWkHw" 2L, 83C

6. Cron vykdymas kas minutę

Idealiu atveju jums nereikės planuoti cron paleidimo kas minutę. Tačiau šio pavyzdžio supratimas padės suprasti kitus šiame straipsnyje aprašytus pavyzdžius.

Bash * * * * * CMD

* – reiškia galimą vienetą – ty kiekvieną kiekvienos valandos minutę ištisus metus. Be to, naudojant * tiesiogiai bus daugiau naudinga funkcija toliau pateiktuose pavyzdžiuose.

Nurodymas */5 minučių lauke reiškia kas 5 minutes. Nurodymas 0–10/2 minučių laukelyje reiškia, kad pirmąsias 10 minučių kas 2 minutes. Taigi šį susitarimą galima naudoti visose 4 srityse.

7. Vykdykite fonines Cron užduotis kas 10 minučių

Jei norite patikrinti vietos diske kas 10 minučių, naudokite toliau nurodytus veiksmus.

*/10 * * * * /home/ramesh/check-disk-space

Ši užduotis paleidžia nurodytą disko tikrinimo komandą kas 10 minučių per metus. Tačiau patikrą gali tekti atlikti tik darbo valandomis arba atvirkščiai. Aukščiau pateikti pavyzdžiai parodo, kaip tai padaryti.

Užuot nurodyę reikšmes 5 laukuose, galime jas nurodyti naudodami raktinį žodį, kaip parodyta toliau.

Yra specialių sąlygų, kai vietoj 5 laukų galite naudoti @ ir raktinį žodį – pvz., perkrovimas, vidurnaktis, kasmet, kas valandą.

Cron specialieji raktažodžiai ir jų reikšmė

8. Suplanuokite darbą pirmai kiekvienų metų minutei naudodami @yearly

Jei norite, kad cron darbas būtų vykdomas pirmosiomis kiekvienų metų minutėmis, galite naudoti raktinį žodį @yearly, kaip parodyta toliau. Tokiu atveju sistema veiks kasmet priežiūra, naudojant metinės priežiūros scenarijų kiekvienų metų sausio 1 d. 00:00 val.

@yearly /home/developer/red-hat/bin/annual-maintenance

9. Kiekvieną mėnesį vykdykite užduotis naudodami raktinį žodį @monthly

Tai panašu į @yearly aukščiau. Tačiau komanda vykdoma kas mėnesį. Komanda atliks atsarginę kopiją kiekvieno mėnesio pirmos dienos 00:00 val.

@monthly /home/ramesh/suse/bin/tape-backup

10. Vykdykite užduotis kiekvieną dieną naudodami @daily

Naudojant @daily raktinį žodį bus sukurtas dienos žurnalo failas, kad būtų išvalytas žurnalas kiekvieną dieną 00:00.

@daily /home/developer/arch-linux/bin/cleanup-logs „diena prasidėjo“

11. Kaip paleisti Linux komandą po kiekvieno perkrovimo naudojant @reboot?

Naudojant @reboot raktinį žodį, nurodyta komanda bus vykdoma kiekvieną kartą, kai sistema paleidžiama.

@rebootCMD

13. 12. Kaip išjungti/peradresuoti Crontab siunčiamą paštą naudojant MAIL raktinį žodį?

Pagal numatytuosius nustatymus crontab siunčia užduočių išvestį vartotojui, kuris įdiegė užduotį. Jei norite juos persiųsti kitam vartotojui, pridėkite arba atnaujinkite MAIL kintamąjį programoje crontab, kaip parodyta toliau.

Developer@dev-db$ crontab -l PAŠTAS="kūrėjas" @yearly /home/developer/annual-maintenance */10 * * * * /home/developer/check-disk-space

Jei norite neleisti išsiųsti laiškų, t. y. nebesiųsti crontab išvesties failų, pridėkite arba atnaujinkite MAIL kintamąjį programoje crontab, kaip parodyta toliau.

13. Kaip paleisti Linux Cron Jobs kas sekundę naudojant Crontab

Negalite nustatyti, kad cron veiktų kas sekundę. Kadangi minimalus cron vykdymo vienetas yra minutė. Įprastu atveju nereikia kas sekundę paleisti cron vykdymo.

14. PATH kintamojo nurodymas Crontab

Visuose aukščiau pateiktuose pavyzdžiuose nurodėme absoliutų kelią Linux komandos arba apvalkalo scenarijus, kurį reikia vykdyti.

Pavyzdžiui, užuot nurodyę /home/developer/tape-backup , jei norite nurodyti tik tape-backup , pridėkite kelią /home/developer PATH kintamasis crontab, kaip parodyta toliau.

Developer@dev-db$ crontab -l PATH=/bin:/sbin:/usr/bin:/usr/sbin:/home/developer @kasmetinė priežiūra */10 * * * * patikrinkite vietą diske

15. Crontab diegimas iš Cron failo

Užuot tiesiogiai redaguodami crontab failą, galite pridėti visus įrašus į cron failą. Jei faile yra šie įrašai, galite juos iškelti arba įdiegti į cron, kaip parodyta toliau.

Pastaba: „Crontab“ bus sukurtas cron-file.txt failas, kuris pašalins ankstesnius cron įrašus. Taigi būkite atsargūs įkeldami cron įrašus iš cron-file.txt:

developer@dev-db$ crontab -l nėra crontab kūrėjui $ cat cron-file.txt @yearly /home/developer/annual-maintenance */10 * * * * /home/developer/check-disk-space developer@dev -db$ crontab cron-file.txt developer@dev-db$ crontab -l @yearly /home/developer/annual-maintenance */10 * * * * /home/developer/check-disk-space

Sistemoje Linux automatinį užduočių paleidimą atlieka crond demonas ir planavimas automatinis paleidimas Užduotis gali atlikti ne tik sistemos administratorius, bet ir vartotojai.

Kaip veikia crond?

Crond demono veikimo principas yra paprastas. Paleidus (dažniausiai, kai sistema paleidžiama), demonas atsibunda kas minutę ir patikrina, ar tą minutę numatyta vykdyti kokių nors programų. Jei tokių programų randama, demonas jas paleidžia ir siunčia el. laiškus vartotojams, kurie suplanavo jas paleisti.

Užduočių planavimas

Sudaryti tvarkaraštį nėra sudėtinga užduotis. Tvarkaraštis yra atskirame crontab faile. Kiekvienoje failo eilutėje yra užduotis, kuri turi būti vykdoma tam tikru laiku.

Crontab failo formatas

Laiko ir datos dalį sudaro penki skaitiniai laukai, atskirti tarpais, kurie apibrėžia darbo pradžios laiką:

Kad būtų patogiau užpildyti šiuos laukus, buvo įvestos šios taisyklės:

  • Galite nurodyti reikšmes kaip skaitinius intervalus. Pavyzdžiui, intervalas 1-3 valandos lauke reiškia 1.00, 2.00 ir 3.00 vidurnaktį, 2-4 savaitės dienos lauke – antradienį, trečiadienį arba ketvirtadienį.
  • Intervalai gali būti nustatyti didesniais nei vienetais žingsniais. Pavyzdžiui, norėdami nurodyti kas antrą valandą nuo vidurnakčio, nustatykite intervalą nuo 0 iki 23 žingsniais po 2, atskirtus pasviruoju brūkšniu: 0-23/2
  • Žvaigždutė (*) rodo visą lauko reikšmių diapazoną - nuo minimalios iki didžiausios. Pavyzdžiui, mėnesio dienos lauke žvaigždutė reiškia intervalą nuo 0 iki 31, savaitės dienos lauke - nuo 0 iki 7
  • Savaitės ar mėnesio dieną galima nurodyti trimis pirmomis jo (angliško) pavadinimo raidėmis

Laiko ir datos pavyzdžiai

Keli laiko datos laukų užpildymo pavyzdžiai:

0 1 * * * Vykdykite užduotį kasdien 1.00 vidurnaktį 30 14 * * 0 Vykdykite užduotį sekmadieniais 14.30 val. 0 23-7/2.8 * * * Vykdykite užduotį kas 2 valandas nuo 23.00 iki 7.00 ir 8.00 0 12 * 1 mėn. Vykdykite darbą kiekvieno pirmadienio vidurdienį kiekvienų metų sausio mėn. 0 12 2 vasaris * Vykdykite darbą kiekvienų metų vasario antrosios vidurdienį

Komandų laukas

Komandos laukas yra atskirtas nuo datos ir laiko laukų vienu ar daugiau tarpų ir tęsiasi iki eilutės pabaigos. Komandas apdoroja /bin/sh apvalkalas.

Pavyzdžiui, šis crontab failo įrašas ragina kiekvieną dieną 1:00 val. paleisti /usr/sbin/backup:

0 1 * * * /usr/sbin/backup

Kai kurias komandas (pvz., paštą) reikia įvesti iš standartinio įvesties įrenginio. Tai nurodoma procento ženklu (%). Pirmasis toks simbolis nurodo standartinio įvesties pradžią, kiekvienas paskesnis simbolis nurodo eilutės pakeitimą.

Crontab failo redagavimas

Crontab failas redaguojamas naudojant crontab -e komandą. Galimi du būdai:

  • sukurti naują failą su visais įrašais, kurie turėtų būti įtraukti į crontab failą, ir įrašyti jį į diską tokiu pavadinimu naudojant komandą crontab;
  • tiesiogiai redaguoti failą naudojant crontab -e komandą.

Rašyti iš failo

Norėdami parašyti crontab failo turinį iš kito failo, turite sukurti tą kitą failą (įprastu teksto redaktorius) su visais įrašais, kurie turėtų sudaryti crontab failą. Tai gali būti, pavyzdžiui, šis įrašas:

0 1 * * * /usr/sbin/backup

Sukurtam failui turėtų būti suteiktas tinkamas pavadinimas, pvz., cron darbai. Sukūrus nurodytą failą, jo turinys turi būti įrašytas į crontab failą su komanda:

~$ crontab cronjobs

Cronjobs failo turinys visiškai pakeis crontab failo turinį duotas vartotojas. Naudodamas šį metodą, bet kuris vartotojas gali redaguoti savo crontab failą. Supervartotojas turi specialias teises redaguoti kitų vartotojų crontab failus. Kieno nors kito failo redagavimas rodomas vėliava -u. Pavyzdžiui, pagal komandą:

~# crontab -u oleg cronjobs

cronjobs failas parašytas kaip vartotojo olego crontab failas.

Tiesioginis crontab failo redagavimas

Komanda crontab leidžia išvengti kelių etapų atskiro failo kūrimo operacijos. Jei išleisite komandą crontab su parinktimi -e, galite tiesiogiai redaguoti crontab failą.

Pagal numatytuosius nustatymus, naudojant komandą crontab su parinktimi -e, crontab failas įkeliamas į redaktorių. redaktorius Vi- galingas, nors ir sudėtingas įrankis, populiarus tarp patyrusių vartotojų Unix. Kas renkasi kitokį redaktorių, pvz. Xedit, gali nustatyti atitinkamą reikšmę aplinkos kintamasis REDAKTORIAUS:

~$ export EDITOR=xedit

Po to įveskite komandą

sukelia crontab failo atidarymą nurodytame redaktoriuje.

Tiesiog kaip eilinis vartotojas gali redaguoti savo crontab failą, supervartotojas gali redaguoti kitų vartotojų crontab failus. Norėdami tai padaryti, naudokite komandą:

~# crontab -u vartotojo vardas -e

Crontab failo peržiūra

Norėdami peržiūrėti crontab failo turinį, įveskite komandą:

Supervartotojas gali peržiūrėti kitų vartotojų crontab failus:

~# crontab -u vartotojo vardas -l

Crontab failo pašalinimas

Norėdami ištrinti savo crontab failo turinį, vartotojas įveda komandą:

Supervartotojas gali ištrinti kitų vartotojų crontab failus.

„Unix“ tipo operacinėse sistemose galima paleisti vartotojo programas vartotojo nurodytu laiku. Tam naudojamas cron užduočių planuoklis, kuris gauna instrukcijas iš vartotojų ir vykdo visas užduotis pagal gautus scenarijus. Mūsų klientai gali naudoti šią funkciją periodinėms užduotims atlikti.

Kaip sukonfigūruoti cron naudojant ISPmanager 5 skydelį

Nustatykite cron scenarijus per valdymo skydelį skyriuje Sistema → Planuoklis

Norėdami pridėti naujų užduočių, spustelėkite "Sukurti". Bus atidarytas interaktyvus cron scenarijaus rengyklė:


Lauke "Komanda" nurodykite visą scenarijaus kelią arba komandą, kuri turi būti vykdoma (sistemos komandoms visas kelias gali būti nenurodytas). Pavyzdžiui, visas kelias į script.pl failą, esantį svetainės šaknyje, atrodys taip:

/var/www/u12345/data/www/script.pl

Įsitikinkite, kad failas, kurį norite paleisti, turi failo savininko skaitymo+vykdymo (r+x) teises. Leidimus galite pakeisti į reikiamus naudodami komandą:

Chmod 750 script.pl

Lauke "Aprašymas" galite užsirašyti, kad nepamirštumėte, ką daro šis scenarijus

Bazė- eilutėje pasirenkate vieną iš pateiktų parinkčių "Bėk": kas valandą, kasdien, kas savaitę, kas mėnesį, kasmet, paleidžiant.

Ekspertas- Lankstus paleidimo dažnio nustatymas: minutės, valandos, mėnesių dienos, mėnesiai, savaitės dienos (0 - sekmadienis). Įvesties formatas: * - visos minutės; */n – kas n minučių; n - nuo minutės n pradžios; a,b,c-e - nuo a,b,c,d,e minučių pradžios

Pavyzdžiai pagrindinis režimas paleidimo dažnio nustatymai:



Eksperto režimo paleidimo dažniui nustatyti pavyzdžiai:

  • atlikti užduotį kartą per valandą 05 min

  • užduotį atlik pirmadieniais 1:15 val

  • atlikti užduotį kasmet balandžio 5 d. 0 val. 1 min

Užpildžius visus laukus (išskyrus "Aprašymas", tai neprivaloma), spustelėkite "gerai".

Ataskaitų siuntimas el. paštu apie scenarijaus vykdymą

Norėdami nustatyti pranešimus, nurodykite el. paštą, į kurį bus siunčiami pranešimai apie scenarijaus vykdymą. Norėdami tai padaryti, eikite į skyrių "Tvarkaraštis"


Spustelėkite mygtuką "Nustatymai" ir lauke "El. pašto adresas" nurodykite el. paštą, į kurį turi būti siunčiami pranešimai apie scenarijaus vykdymą.


Scenarijaus nustatymuose įsitikinkite, kad laukelis šalia „Nesiųskite ataskaitos el. paštu“.

Kaip nustatyti cron per ssh

Cron scenarijų konfigūravimas atliekamas per unix apvalkalą. Nustatykite, kurias programas reikia paleisti, ir išsiaiškinkite visus kelius iki jų serverio diske. Norėdami tai padaryti, naudokite komandą cd, kad pereitumėte į katalogą, kuriame yra jūsų vykdoma programa, ir sužinokite visą kelią į šį katalogą naudodami komandą pwd. Kelias gali atrodyti taip – ​​/home/u12345/scripts/script.pl.

Įsitikinkite, kad failas turi skaitymo ir vykdymo (r+x) leidimus vartotojui, kuriuo vykdote scenarijų. Naudodami komandą galite pakeisti leidimus į reikiamus chmod 750 script.pl

750 - visas teises failo savininkas, grupė - skaitymas ir vykdymas, kitiems - prieiga uždrausta.

Vykdykite komandą crontab -e – planuotojas pakeis vartotojo, kurio vardu paleisite cron, planą. Kai pirmą kartą jį paleisite, būsite paraginti pasirinkti teksto rengyklę. Pasirinkite redaktorių, su kuriuo jau žinote. Kaip pavyzdį pažvelgsime į vi teksto rengyklę. Įvedę komandą pateksite į vi (n) teksto rengyklę, kurioje galėsite įvesti cron scenarijaus tekstą.

Greita nuoroda į vi redaktorių:

  • norėdami įterpti tekstą, paspauskite i, tada įveskite tekstą
  • Norėdami ištrinti simbolius, paspauskite ESC ir įveskite x
  • Norėdami išeiti iš vi neišsaugoję pakeitimų, paspauskite ESC ir įveskite:q!
  • Norėdami išsaugoti ir išeiti, paspauskite ESC ir įveskite:wq

Cron darbai rašomi po vieną eilutėje. Po kiekvienos eilutės, taip pat ir po paskutinės ar tik vienos, būtinai paspauskite enter, kitaip užduotys neveiks.

Užduotis atrodo kaip eilutė. Pradžioje yra penki privalomi laukai, atskirti tarpais, nurodantys darbo dažnumą. Toliau pateikiama komanda, kurią reikia paleisti:

laukas1 laukas2 laukas3 laukas4 laukas5 komanda

Pirmųjų penkių laukų reikšmės:

  • minutės – skaičius nuo 0 iki 59
  • valandos - skaičius nuo 0 iki 23
  • mėnesio diena - skaičius nuo 1 iki 31
  • metų mėnesio skaičius – skaičius nuo 1 iki 12
  • savaitės diena – skaičius nuo 0 iki 7 (0 – sekmadienis, 1 – pirmadienis, 2 – antradienis, 3 – trečiadienis, 4 – ketvirtadienis, 5 – penktadienis, 6 – šeštadienis, 7 sek.)

Kiekvienam konkrečiam parametrui galite nurodyti kelias reikšmes, atskirtas kableliais. Pavyzdžiui, jei lauke „valandos“ rašote 1,4,22, tada užduotis bus vykdoma 1, 4 ir 22 val. Galite nustatyti intervalą - 4-9 reiškia, kad programa turi būti paleista kas valandą nuo 4 iki 9 valandų imtinai.

Simbolis «*» reiškia „visas įmanomas vertybes“. Žvaigždė «*» lauke „valandos“ reikš „bėgti kas valandą“. Simbolis «/» nurodo papildomą užduočių dažnumą. Pavyzdžiui, "*/3" lauke „valandos“ reiškia kas tris valandas. Jei laukai „mėnesio diena“ ir „savaitės diena“ yra apibrėžti (nelygūs *), tokia užduotis bus vykdoma kiekvieną nurodytą savaitės dieną, nepriklausomai nuo mėnesio dienos.

13 13 10 * 5 /home/u12345/script.pl

tokia komanda bus vykdoma 13:13 kiekvieną penktadienį ir kas 10 mėnesio dieną, net jei 10 diena nesutampa su penktadieniu.

Cron leidžia paleisti scenarijus, kai sistema paleidžiama – scenarijaus pradžioje nurodykite @reboot, o ne vykdymo dažnį:

@reboot /home/u12345/script.pl

Štai kaip atrodo paprastas cron scenarijus:

0 */3 * * 2.5 /home/u12345/script.pl

Scenarijus /home/u12345/script.pl bus automatiškai paleistas kas tris valandas antradienį ir penktadienį. Įveskite tokį scenarijų į vi redaktorių, išeikite ir išsaugokite redagavimo rezultatus. Jei nepadarėte klaidų, užduotis bus atlikta nurodytu dažnumu.

Cron praneša apie scenarijaus klaidas:

/tmp/crontab.xxxxxxx: 1 eilutė, 9 simboliai crontab: diegiamas naujas crontab "/tmp/crontab.xxxxxxx":1: bloga minutė crontab: klaidos crontab faile, negalite įdiegti Ar norite dar kartą bandyti tą patį redaguoti?

Galite peržiūrėti scenarijų, jau įdiegtų cron, sąrašą naudodami komandą crontab -l:

Bash-2.05b$ crontab -l 0 */3 * * 2.5 /home/u12345/script.pl

Jei programą reikia paleisti kartą per dieną, rinkitės nakties laiką. Nuo 2 iki 8 ryto serverių apkrova minimali. Jei programai reikia daug išteklių, naktį ji veiks greičiau nei dieną.

cron naudojimo pavyzdžiai

  • atlikti užduotį kartą per valandą 0 minučių - 0 */1 * * * /home/u12345/script.pl
  • paleiskite užduotį kas tris valandas 0 minučių - 0 */3 * * * /home/u12345/script.pl
  • užduotį atlik pirmadieniais 1:15 val - 15 1 * * 1 /home/u12345/script.pl
  • atlikti užduotį kasmet balandžio 5 d. 0 val. 1 min - 1 0 5 4 * /home/u12345/script.pl
  • užduotį atlikti kas mėnesį 1 d. 6:10 val - 10 6 1 * * /home/u12345/script.pl

Kaip paleisti PHP scenarijų pagal tvarkaraštį

Vykdykite scenarijus PHP kalba nurodytu laiku norimu dažniu naudojant PHP-CLI interpretatorių Taip gali atrodyti komanda paleisti scenarijų script.php - /usr/bin/php -q $HOME/script.php> /dev/null. 2>&1

Kadangi ne visos PHP programos gali veikti per SAPI CLI be išankstinio pakeitimo, galite jas paleisti naudodami wget:

/usr/bin/wget -O /dev/null -q http://mysite.tld/cron.php?action=123

Nurodykite kelią iki komunalinių paslaugų iki galo, nuo šaknies failų sistema. Jei scenarijus naudoja reikalavimo ir įtraukimo funkcijas, kurios nurodo santykinius kelius, vykdomo scenarijaus pradžioje naudokite funkcijos chdir() iškvietimą, kuri nustatys esamą darbo katalogą. Arba naudokite integruotą cd komandą.

@reboot cd /home/u12345 && ./script.pl

Kaip gauti klaidų pranešimus iš programų, kurias paleidžia cron

Vykdydami programas galite gauti klaidų pranešimus, kad galėtumėte visapusiškai stebėti periodiškai vykdomų užduočių našumą. Norėdami tai padaryti, įdėkite šią eilutę cron scenarijaus pradžioje:

[email protected], kur „[email protected]“ yra adresas paštu, kur ateis pranešimai. Norėdami nurodyti kelis adresus, įveskite juos kableliais.

Kiekvieną kartą, kai cron vykdo užduotį, gausite el. laišką su scenarijų išvestimi. Jei parašysite scenarijų, kuris išspausdins eilutę „Hello, world“ ir paleisite ją per cron, kiekvieną kartą, kai cron paleis tokį scenarijų, gausite el. laišką su eilute „Hello, world“.

Jei jums nereikia teksto išvesties pagal scenarijų, į cron scenarijaus eilutės pabaigą pridėkite simbolius > /dev/null 2>&1

Visa cron eilutė atrodys taip:

0 1 * * * /usr/bin/php -q $HOME/script.php > /dev/null 2>&1

Patikrinkite teisingą scenarijų, kuriuos nustatėte paleisti naudodami cron, sintaksę. Skriptuose gali būti klaidų ir jie gali veikti kitaip, kai vykdomi naudojant žiniatinklio serverį, nei naudojant cron ir pan. Prieš paleisdami patikrinkite scenarijų naudodami komandą unix apvalkale:

/usr/bin/php -l script.php

Jei scenarijuje klaidų nėra, pamatysite pranešimą „Skripte.php neaptikta sintaksės klaidų“.

Kaip paleisti scenarijų kaip vartotojui

Siekiant padidinti sistemos saugumą, scenarijus vykdomas konkretaus vartotojo vardu. Įsitikinkite, kad vartotojas turi teisę paleisti scenarijų. Padėkite jį prieš pagrindinę scenarijaus dalį su -l vartotojo vardas, iš kurio norite paleisti scenarijų.

Pavyzdžiui, norėdami paleisti TeamSpeak3 serverį kaip ts3server vartotoją, naudokite šią komandą:

Su -l ts3server ./ts3server_startscript.sh start

Scenarijus yra vartotojo namų kataloge, į kurį automatiškai patenkame autorizavimo metu.

Apribojimai

Programoms, kurios paleidžiamos per cron, taikomi tie patys sunaudojamų išteklių apribojimai, kaip ir procesams, kuriuos vartotojas paleido „unix“ apvalkale. Kalbame apie programos vykdymo laiko apribojimus, laisvos atminties kiekį, failo dydžio apribojimus ir pan.



 


Skaityti:



Internete masiškai plinta pavojingas išpirkos reikalaujantis virusas

Internete masiškai plinta pavojingas išpirkos reikalaujantis virusas

Anna Kournikova virusas gavo savo pavadinimą ne be priežasties – gavėjai manė, kad atsisiunčia seksualios tenisininkės nuotraukas. Finansinė žala...

Papildomos RAM įdiegimas

Papildomos RAM įdiegimas

„Natūralaus įsiminimo principai pagrįsti nervų jungtimis, kurios susidaro smegenyse“, – sako neurologė Olga Zimnyakova...

Ką daryti, jei ausinės neatkuria garso nešiojamajame kompiuteryje

Ką daryti, jei ausinės neatkuria garso nešiojamajame kompiuteryje

Ausinių prijungimo ir veikimo problemos yra gana dažnos. Šiame straipsnyje apžvelgsime keletą labiausiai tikėtinų priežasčių...

Diodų katalogas Didelės galios lygintuvų diodai 220V

Diodų katalogas Didelės galios lygintuvų diodai 220V

Pagrindinis lygintuvų diodų tikslas yra įtampos konvertavimas. Tačiau tai nėra vienintelė šių puslaidininkių taikymo sritis...

tiekimo vaizdas RSS