crontab

„Cron Jobs“ baigimo pamoka pradedantiesiems

„Cron Jobs“ baigimo pamoka pradedantiesiems
„Cron“ yra naudingiausia „Linux“ ar UNIX tipo operacinės sistemos priemonė, leidžianti paleisti komandas ar scenarijus pagal tam tikrą tvarkaraštį be vartotojo įsikišimo. Suplanuotos komandos ir scenarijai taip pat vadinami „cron“ užduotimis. Jis dažniausiai naudojamas pasikartojančių darbų automatizavimui, pvz., Suplanuotų atsarginių kopijų vykdymui, laikinų failų valymui, sistemos priežiūrai ir įvairioms kitoms pasikartojančioms užduotims. Tai panašu į „Windows OS“ užduočių planuoklį.

Š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 / scenarijus

Iš kairės:

Norėdami nurodyti kelias reikšmes lauke, naudokite šiuos operatoriaus simbolius:

  1. Žvaigždutė (*): Norėdami nurodyti visas galimas lauko reikšmes
  2. Brūkšnys (-): Į snurodykite vertybių diapazoną
  3. Kablelis (,): Norėdami nurodyti vertybių sąrašą
  4. 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 -e

Pavyzdž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 -u -e

Pvz., 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 / scenarijus

Vykdykite „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 / scenarijus

Kiekvieną 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 / scenarijus

Kiekvieną 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 / scenarijus

Vykdykite „cron“ darbą kas 5 valandas

Norėdami suplanuoti „cron“ darbą kas 5 valandas, pridėkite žemiau esančią eilutę „crontab“ faile:

0 * / 5 * * * komanda / scenarijus

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 * * * *

Stygų naudojimas

Darbui apibrėžti taip pat gali būti naudojamos šios eilutės:

  1. @ valandą: Norėdami atlikti darbą kartą per valandą, t.e., „0 * * * *
  2. @vidurnaktis: Norėdami atlikti darbą kartą per dieną, t.e., „0 0 * * *
  3. @ kasdien: tas pats kaip vidurnaktis
  4. @ kas savaitę: Norėdami atlikti darbą kartą per savaitę, t.e., „0 0 * * 0
  5. @ mėnesį: Norėdami atlikti darbą kartą per mėnesį, t.e., „0 0 1 * *
  6. @ kasmet: Atlikti darbą kartą per metus, t.e., „0 0 1 1 *
  7. @ metai: tas pats kaip @metu
  8. @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 / scenarijus

Iš 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 -l

Perž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 / crontab

Turė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 su tikru vartotojo vardu:

$ sudo crontab -u -l

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.txt

Visų 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.

5 geriausios žaidimų fiksavimo kortos
Visi mes matėme ir pamėgome srautinius žaidimus „YouTube“. „PewDiePie“, „Jakesepticye“ ir „Markiplier“ yra tik vieni iš geriausių žaidėjų, kurie uždir...
Kaip sukurti žaidimą „Linux“
Prieš dešimtmetį nedaugelis „Linux“ vartotojų numatė, kad jų mėgstama operacinė sistema vieną dieną bus populiari komercinių vaizdo žaidimų žaidimų pl...
Atvirojo kodo komercinių žaidimų variklių uostai
Nemokami atvirojo kodo ir įvairių platformų žaidimų varikliai gali būti naudojami žaidžiant senus ir kai kuriuos gana naujus žaidimų pavadinimus. Šiam...