11 „Cron“ planavimo užduočių pavyzdžių sistemoje „Linux“.


Šiame straipsnyje apžvelgsime ir pamatysime, kaip galime suplanuoti ir reguliariais intervalais automatiškai vykdyti Linux užduotis fone, naudodami komandą Crontab.

Dažnas darbas rankiniu būdu yra bauginanti užduotis sistemos administratoriams ir tokias užduotis galima planuoti ir vykdyti automatiškai fone be žmogaus įsikišimo naudojant cron demoną Linux arba Unix tipo operacinėje sistemoje.

Pavyzdžiui, galite automatizuoti Linux sistemos atsarginės kopijos kūrimą, suplanuoti naujinimus ir failų sinchronizavimą bei daug daugiau, naudodami Cron demoną, kuris naudojamas suplanuotoms užduotims vykdyti iš komandinės eilutės. arba naudokite internetinius įrankius, kad sukurtumėte cron užduotis.

Cron atsibunda kiekvieną minutę ir tikrina suplanuotas užduotis skaičiuojant – Crontab (CRON TABle) yra lentelė, kurioje galime suplanuoti tokio tipo pasikartojančias užduotis .

Patarimai: kiekvienas naudotojas gali turėti savo crontab, kad galėtų kurti, keisti ir ištrinti užduotis. Pagal numatytuosius nustatymus naudotojams įgalinta cron, tačiau galime apriboti naudotojus pridėdami įrašą į failą /etc/cron.deny.

„Crontab“ sistemoje „Linux“.

Failas Crontab susideda iš komandų eilutėje ir turi šešis laukus, atskirtus tarpu arba tabuliavimu. Pirmieji penki laukai rodo užduočių vykdymo laiką, o paskutinis laukas skirtas komandoms.

  • Minutė (laikyti vertes tarp 0–59)
  • Valanda (laikykite reikšmes tarp 0–23)
  • Mėnesio diena (laikykite reikšmes tarp 1–31)
  • Metų mėnuo (laikykite reikšmes tarp 1–12 arba Sausio–gruodžio, galite naudoti pirmąsias tris kiekvieno mėnesio pavadinimo raides, pvz., Sausio arba Birželio mėn..)
  • Savaitės diena (laikykite reikšmes tarp 0–6 arba sekm.–šeštadienį, čia taip pat galite naudoti pirmąsias tris kiekvienos dienos pavadinimo raides, t. y. sekm. arba trečiadienį<.)
  • Komanda – /path/to/command arba scenarijus, kurį norite suplanuoti.

1. Išvardykite Crontab įrašus

Išvardykite arba valdykite užduotį naudodami komandą crontab su parinktimi -l dabartiniam vartotojui.

crontab -l

00 10 * * * /bin/ls >/ls.txt

2. Redaguokite Crontab įrašus

Norėdami redaguoti crontab įrašą, naudokite toliau pateiktą parinktį -e. Toliau pateiktame pavyzdyje bus atidarytos suplanuotos užduotys VI redaktoriuje. Atlikite reikiamus pakeitimus ir nustokite spausti :wq klavišus, kurie automatiškai išsaugo nustatymą.

crontab -e

3. Pateikite naudotojo suplanuotų Cron darbų sąrašą

Norėdami pateikti suplanuotas konkretaus vartotojo, vadinamo tecmint, užduotis, naudodami parinktį -u (Vartotojas) ir -l (Sąrašas).

crontab -u tecmint -l

no crontab for tecmint

Pastaba: tik root naudotojas turi visas teises matyti kitų naudotojų crontab įrašus. Paprasti vartotojai negali peržiūrėti kitų.

4. Pašalinkite Crontab įrašą

Įspėjimas: „Crontab“ su parametru -r pašalins visas suplanuotas užduotis be „Crontab“ patvirtinimo. Prieš ištrindami vartotojo crontab naudokite parinktį -i.

crontab -r

5. Raginimas prieš ištrinant Crontab

crontab su -i parinktis paragins jus patvirtinti iš vartotojo prieš ištrinant vartotojo crontab.

crontab -i -r

crontab: really delete root's crontab?

6. Leidžiami specialieji simboliai (*, -, /, ?, #)

  • Žvaigždutė (*) – atitinka visas lauko vertes arba bet kurią galimą reikšmę.
  • Brūkšnelis (-) – apibrėžti diapazoną.
  • Pasvirasis brūkšnys (/) – 1 laukas /10 reiškia kas dešimt minučių arba diapazono padidėjimą.
  • Kablelis (,) – elementams atskirti.

7. Sistemos Cron tvarkaraštis

Sistemos administratorius gali naudoti iš anksto nustatytą cron katalogą, kaip parodyta toliau.

  • /etc/cron.d
  • /etc/cron.daily
  • /etc/cron.hourly
  • /etc/cron.monthly
  • /etc/cron.weekly

8. Suplanuokite darbą konkrečiam laikui

Toliau pateiktos užduotys ištrina tuščius failus ir katalogus iš /tmp kasdien 12:30. Norėdami atlikti crontab komandą, turite paminėti vartotojo vardą. Toliau pateiktame pavyzdyje root naudotojas atlieka cron užduotį.

crontab -e

30 0 * * *   root   find /tmp -type f -empty -delete

9. Specialios eilutės bendram tvarkaraščiui

@reboot

Komanda bus paleista, kai sistema bus paleista iš naujo.

@daily

Kartą per dieną arba galite naudoti @midnight.

@weekly

Kartą per savaitę.

@yearly

Kartą per metus. taip pat galime naudoti raktinį žodį @kasmet.

Jei norite naudoti tuos pačius, penkis komandos cron laukus reikia pakeisti raktiniais žodžiais.

10. Kelios komandos su dvigubu ampersandu (&&)

Toliau pateiktame pavyzdyje komandos1 ir komandos2 vykdomos kasdien.

crontab -e

@daily <command1> && <command2>

11. Išjunkite el. pašto pranešimus.

Pagal numatytuosius nustatymus cron siunčia laiškus į vartotojo abonementą, vykdantį cronjob. Jei norite jį išjungti, pridėkite savo cron darbą, panašų į toliau pateiktą pavyzdį. Naudojant parinktį >/dev/null 2>&1 failo pabaigoje, visi cron rezultatai bus nukreipti į /dev/null.

[root@tecmint ~]# crontab -e
* * * * * >/dev/null 2>&1

Išvada: užduočių automatizavimas gali padėti mums atlikti užduotis geriau, be klaidų ir efektyviau. Daugiau informacijos galite rasti rankiniame crontab puslapyje, terminale įvesdami komandą man crontab.