Šioje pamokoje pateiksime jums pagrindinę informaciją apie viską, ko reikia suprasti, norint suplanuoti darbą naudojant „cron“. Tai apima pagrindinę „cron“ sintaksę, „crontab“ failo redagavimą, darbo su „cron“ suplanavimą su keliais pavyzdžiais, „cron“ darbo peržiūrą ir kt.
Crono darbo pagrindai
Supraskime keletą „cron“ darbo pagrindų.
Kas yra Crondas?
„Crond“ yra „Linux“ sistemos deimonas, veikiantis fone ir kiekvieną minutę tikrinantis, ar tuo metu yra suplanuotas darbas. Jei yra, ji atlieka tą darbą, kitaip lieka neaktyvi.
„Cron Job Syntax“
„Cron“ darbo sintaksė yra tokia:
* * * * * komanda / scenarijusIš kairės:
- Pirmasis * atitinka protokolą (0–59)
- Antroji * atitinka valandas (0–23)
- Trečiasis * atitinka mėnesio dieną (1-31)
- Ketvirtoji * atitinka metų mėnesį (1–12)
- Penktasis * atitinka savaitės dieną (0–6, nuo sekmadienio iki šeštadienio)
Norėdami nurodyti kelias reikšmes lauke, naudokite šiuos operatoriaus simbolius:
- Žvaigždutė (*): Norėdami nurodyti visas galimas lauko reikšmes
- Brūkšnys (-): Į snurodykite vertybių diapazoną
- Kablelis (,): Norėdami nurodyti vertybių sąrašą
- Separatorius (/): Norėdami nurodyti žingsnio vertę
Redaguoti „Crontab“ failą
„Crontab“ yra failas, kuriame yra suplanuoti darbai tam tikroje sintaksėje. Yra dviejų tipų crontab failai; vienas skirtas sistemos „Cron“ užduotims, o kitas - „Cron“ specifiniams vartotojams.
„System cron“ darbai
Visoje sistemoje veikiantys „cron“ darbai yra / etc / crontab failą ir / etc / cron.d katalogą, ir jie yra paleisti / etc / cron.kas valandą, / etc / cron.kasdien, / etc / cron.kas savaitę ir / etc / cron.kas mėnesį. Šiuos failus gali pasiekti tik sistemos administratorius.
Sistemos administratorius gali apibrėžti „cron“ užduotį naudodamas šią komandą:
$ nano / etc / crontabČia yra darbo sintaksė / etc / crontab failas:
# min hr mėnesio diena, savaitės diena vartotojo vardo komanda* * * * * vartotojas1 ifconfig
Vartotojo specifiniai „cron“ darbai
„Cron“ konkretaus vartotojo užduotys yravar / spool / cron / crontabs kataloge. Nors šias užduotis galite redaguoti rankiniu būdu, rekomenduojama šias užduotis redaguoti naudojant komandą crontab -e.
Standartinis vartotojas gali apibrėžti „cron“ užduotį naudodamas šią komandą:
$ crontab -ePavyzdžiui, jei esate prisijungę kaip „bandomasis“ vartotojas, paleisdami komandą „crontab -e“, redaguosite „testo“ vartotojo crontab failą. Panašiai, jei esate prisijungę kaip root vartotojas, komanda crontab -e redaguos root vartotojo crontab failą.
Išduokite žemiau esančią komandą „Terminal“, jei norite redaguoti bet kurio kito vartotojo „crontab“ failą:
$ sudo crontab -uPvz., Jei esate prisijungę kaip „test1“ vartotojas ir norite redaguoti „test2“ vartotojo crontab failą, komanda būtų tokia:
$ sudo crontab -u test2 -eČia yra „cron“ darbo, kurį galima pridėti į „crontab“ failą, sintaksė:
# m h mėnesio dienos savaitės diena* * * * * ifconfig
Konkretiems vartotojams skirtose užduotyse galite pamatyti, kad nėra „vartotojo vardo“.
„Crontab“ komandos
„Crontab“ komanda naudojama redaguoti, išvardyti ir pašalinti „cron“ užduotis:
- crontab -e Norėdami redaguoti dabartinio vartotojo crontab failą
- crontab -l Norėdami parodyti crontab failo turinį
- crontab -u [vartotojo vardas] Norėdami redaguoti bet kurio kito vartotojo crontab failą
- crontab -r Norėdami pašalinti dabartinio vartotojo crontab failą
- crontab -i Norėdami pašalinti raginimą prieš pašalindami dabartinio vartotojo crontab failą
Darbo su Cronu planavimas
Naudodamiesi „Cron“, galite paleisti darbą tam tikru laiku, data ir intervalais su minimaliu vienetu minutėmis, t.e., galite dirbti kiekvieną minutę.
Norėdami suplanuoti darbą su „cron“, atidarykite „crontab“ failą naudodami ankstesniame skyriuje aptartą metodą. Atidarę crontab failą, būsite paraginti pasirinkti teksto rengyklę. Įveskite skaičių, kad pasirinktumėte pageidaujamą teksto rengyklę. Slinkite žemyn iki failo apačios ir pridėkite užduočių aukščiau aprašytoje sintaksėje. Kiekvienoje failo eilutėje nurodoma viena komanda. Pirmieji penki eilutės įrašai nurodo suplanuotą laiką, o paskutinis įrašas nurodo, kurią komandą ar scenarijų reikia vykdyti.
Pavyzdys:
Šioje „crontab“ failo eilutėje „Cron“ užduotis bus suplanuota komandą / scenarijų paleisti kas 30 minučių per paskutines 5 valandas kiekvieną savaitės dieną nuo pirmadienio iki šeštadienio.
* / 30 5 * * 1-6 komanda / scenarijus
Protokolas
Šiame lauke nurodome minutes, kada norime vykdyti komandą. Jis nurodomas nuo 0 iki 59. * Šiame lauke reiškia atlikti darbą kiekvieną minutę. Pirmiau pateiktoje „crontab“ eilutėje * / 30 liepia „cron“ užduočiai vykdyti nurodytą komandą / scenarijų kas 30 minučių.
Valandos
Šiame lauke nurodome valandas, kada norime vykdyti komandą. Jis nurodomas nuo 0 iki 23. * Šiame lauke reiškia atlikti darbą kas valandą. Pirmiau pateiktoje „crontab“ eilutėje 5 reikšmė nurodo „cron“ užduotį paleisti nurodytą komandą / scenarijų kas penkias valandas.
Mėnesio diena
Šiame lauke nurodome konkrečias mėnesių dienas, kai norime, kad komanda būtų vykdoma. Jis nurodomas nuo 1 iki 31. * Šioje srityje reiškia kiekvieną dieną. Pirmiau pateiktoje „crontab“ eilutėje * liepia „cron“ užduotis kiekvieną dieną vykdyti nurodytą komandą / scenarijų.
Metų mėnesis
Šiame lauke nurodome konkrečius mėnesius, kai norime, kad komanda būtų vykdoma. Jis nurodomas nuo 1 iki 12. * Šioje srityje reiškia kiekvieną mėnesį. Pirmiau pateiktoje „crontab“ eilutėje * liepia „cron“ užduočiai kiekvieną mėnesį paleisti nurodytą komandą / scenarijų.
Savaitės diena
Šiame lauke nurodome konkrečias savaitės dienas, kai norime, kad komanda būtų vykdoma. Nurodoma nuo 0 iki 6 nuo sekmadienio iki šeštadienio (0 sekmadieniui ir 6 šeštadieniui). * Šioje srityje reiškia kiekvieną dieną per savaitę. Pirmiau pateiktoje „crontab“ eilutėje * liepia „cron“ užduotis kiekvieną savaitę per savaitę paleisti nurodytą komandą / scenarijų.
Crono darbo pavyzdžiai
Štai keli „Cron“ darbų pavyzdžiai:
Vykdykite „cron“ darbą kas 15 minučių
Norėdami suplanuoti „cron“ darbo vykdymą kas 15 minučių, pridėkite žemiau esančią eilutę „crontab“ faile:
* / 15 * * * * komanda / scenarijusVykdykite „cron“ darbą kiekvieną dieną 5 val
Norėdami suplanuoti „cron“ darbo vykdymą kiekvieną dieną 5 val., Pridėkite žemiau esančią eilutę „crontab“ faile:
0 5 * * * komanda / scenarijusKiekvieną dieną 17 val. Atlikite „cron“ darbą
Norėdami suplanuoti „cron“ darbo vykdymą kiekvieną dieną 17 val., Pridėkite žemiau esančią eilutę „crontab“ faile:
0 17 * * * komandą / scenarijųKiekvieno mėnesio pirmą dieną 9 valandą ryto atlikite „cron“ darbą
Norėdami suplanuoti „cron“ darbo vykdymą kiekvieno mėnesio pirmą dieną 9 val., Pridėkite žemiau esančią eilutę „crontab“ faile:
0 9 1 * * komanda / scenarijusKiekvieną kovo 15 dieną kiekvieną valandą atlikite „cron“ darbą
Norėdami suplanuoti „cron“ darbą kas valandą kiekvieną kovo 15 dieną, pridėkite žemiau esančią eilutę crontab faile:
0 * 15 3 * komanda / scenarijusVykdykite „cron“ darbą kas 5 valandas
Norėdami suplanuoti „cron“ darbą kas 5 valandas, pridėkite žemiau esančią eilutę „crontab“ faile:
0 * / 5 * * * komanda / scenarijusVykdykite „cron“ darbą kas 15 minučių
Norėdami suplanuoti „cron“ darbo vykdymą kas 15 minučių, pridėkite žemiau esančią eilutę „crontab“ faile:
* / 15 * * * *Stygų naudojimas
Darbui apibrėžti taip pat gali būti naudojamos šios eilutės:
- @ valandą: Norėdami atlikti darbą kartą per valandą, t.e., „0 * * * *„
- @vidurnaktis: Norėdami atlikti darbą kartą per dieną, t.e., „0 0 * * *„
- @ kasdien: tas pats kaip vidurnaktis
- @ kas savaitę: Norėdami atlikti darbą kartą per savaitę, t.e., „0 0 * * 0„
- @ mėnesį: Norėdami atlikti darbą kartą per mėnesį, t.e., „0 0 1 * *„
- @ kasmet: Atlikti darbą kartą per metus, t.e., „0 0 1 1 *„
- @ metai: tas pats kaip @metu
- @reboot: Atlikti darbą vieną kartą kiekvieno paleidimo metu
Pavyzdžiui, norint kiekvieną savaitę paleisti scenarijų ar komandą, įrašas crontab faile būtų toks:
@ sav. komanda / scenarijusIš anksto nustatyti „Cron“ katalogai
Linux sistemoje yra keletas iš anksto apibrėžtų „cron“ katalogų, kuriuose saugomi scenarijai vykdomi automatiškai. Jei po šiais katalogais įdėsime kokį nors scenarijų, jis bus automatiškai vykdomas nustatytu laiku.
- / etc / cron.kasdien
- / etc / cron.kas valandą
- / etc / cron.kas mėnesį
- / etc / cron.kas savaitę
Pavyzdžiui, norėdami vykdyti scenarijų kartą per mėnesį, turėsite jį įdėti į / etc / cron.kas mėnesį.
Peržiūrėti „Cron“ darbus
Peržiūrėti dabartinio vartotojo užduotis
Norėdami peržiūrėti visas suplanuotas „cron“ užduotis dabartiniam vartotojui, naudokite šią komandą:
$ crontab -lPeržiūrėkite root vartotojų užduotis
Norėdami peržiūrėti visas suplanuotas pagrindinio vartotojo užduotis, terminale pateikite šią komandą:
$ cat / etc / crontabTurėsite prisijungti kaip root vartotojas arba paleisti komandą kaip sudo.
Peržiūrėkite kitų vartotojų užduotis
Norėdami peržiūrėti visas suplanuotas konkretaus vartotojo užduotis, terminale pateikite šią komandą, pakeisdami
Norėdami paleisti šią komandą, jums reikės sudo privilegijų.
Peržiūrėkite valandinius „cron“ darbus
Norėdami peržiūrėti visas „cron“ užduotis, sukonfigūruotas vykdyti kas valandą, „Terminal“ pateikite šią komandą:
$ ls -la / etc / cron.kas valandąPeržiūrėkite kasdienius „cron“ darbus
Norėdami peržiūrėti visas „cron“ užduotis, kurios sukonfigūruotos vykdyti kasdien, „Terminal“ pateikite šią komandą:
$ ls -la / etc / cron.kasdien /Peržiūrėkite savaitinius „Cron“ darbus
Norėdami peržiūrėti visas „cron“ užduotis, kurios sukonfigūruotos paleisti kas savaitę, terminale pateikite šią komandą:
$ ls -la / etc / cron.kas savaitę /Peržiūrėkite mėnesinius „Cron“ darbus
Norėdami peržiūrėti visas „cron“ užduotis, kurios sukonfigūruotos vykdyti kas mėnesį, terminale pateikite šią komandą:
$ ls -la / etc / cron.kas mėnesį /Atsarginė visų „Cron“ darbų kopija
Visų „cron“ darbų atsarginę kopiją rekomenduojama laikyti faile, kad galėtumėte atkurti ištrynimo atveju. Norėdami sukurti visų esamų darbų atsarginę kopiją, naudokite peradresavimo operatorių, kad nukreiptumėte crontab -l išvestį į failą.
$ crontab -l> backup_cron.txtVisų suplanuotų „Cron“ darbų pašalinimas
Norėdami pašalinti visas suplanuotas „cron“ užduotis, naudokite žymeklį -r taip:
$ crontab -r„Cron“ leidimas
Galime apriboti prieigą prie komandos crontab naudodami du failus: / etc / cron.leisti ir / etc / cron.neigti.
- / etc / cron.leisti - Pridėkite vartotojų (po vieną kiekvienoje eilutėje), kuriems norite leisti pasiekti „crontab“ komandas. Šie vartotojai gali vykdyti tvarkaraščio užduotis.
- / etc / cron.neigti - Pridėkite vartotojų (po vieną kiekvienoje eilutėje), kuriems norite uždrausti prieigą prie „crontab“ komandų. Šie vartotojai negali vykdyti suplanuotų darbų.
„Crontab“ sintaksės generatoriai
Yra keletas svetainių, leidžiančių generuoti crontabs sintaksę. Šios svetainės leidžia lengviau generuoti „crontab“ išraišką, nepamirštant sintaksės. Nors sintaksės generatoriams yra įvairių svetainių, tokių kaip crontabgenerator.com, crontab-generator.org ir sutvarkytojas.com. Kuris man labiausiai patinka ir man buvo naudingas, yra „crontab“.guru. Remiantis vartotojo įvestimi, jis sukuria „crontab“ išraišką, kurią galite nukopijuoti ir įklijuoti į „crontab“ failą.
Išvada
Šioje pamokoje mes paaiškinome „cron“ užduočių pagrindus, jų sintaksę ir kaip ją nustatyti. Mes taip pat aptarėme, kaip peržiūrėti „Cron“ užduotis, sukurti atsarginę kopiją ir pašalinti jas, jei to nebereikia.