Cron Jobs: täielik õpetus algajatele

Cron Jobs Complete Beginners Tutorial



Cron on Linuxi või UNIX-i sarnases operatsioonisüsteemis kõige kasulikum utiliit, mis võimaldab käskude või skriptide käivitamist etteantud ajakava järgi ilma kasutaja sekkumiseta. Ajastatud käske ja skripte nimetatakse ka cron -töödeks. Seda kasutatakse enamasti korduvate tööde automatiseerimiseks, nagu plaanitud varunduste tegemine, ajutiste failide puhastamine, süsteemi hooldus ja mitmesugused muud korduvad tööd. See on sarnane Windowsi operatsioonisüsteemi ajakavaga.

Selles õpetuses tutvustame teile põhiteavet kõigest, mida peate croniga töö planeerimiseks mõistma. See hõlmab croni põhisüntaksit, crontab -faili redigeerimist, mõne aja näidetega croniga töö ajastamist, cron -töö vaatamist jne.







Cron Jobi põhitõed

Mõistame mõningaid cron -töö põhitõdesid.



Mis on Crond?

Crond on Linuxi süsteemi deemon, mis töötab taustal ja kontrollib iga minuti tagant, kas sel ajal on plaanitud tööd. Kui see on olemas, täidab ta seda tööd, vastasel juhul jääb see passiivseks.



Croni töö süntaks

Croni töö süntaks on järgmine:





* * * * *käsk/skript

Vasakult:

  • Esimene * vastab protokollile (0–59)
  • Teine * vastab tundidele (0–23)
  • Kolmas * vastab kuu päevale (1-31)
  • Neljas * vastab aasta kuule (1–12)
  • Viies * vastab nädalapäevale (0–6, pühapäevast laupäevani)

Mitme väärtuse määramiseks väljale kasutage järgmisi operaatori sümboleid:



  1. Tärn (*): Välja kõigi võimalike väärtuste määramiseks
  2. Kriips (-): To s täpsustage väärtuste vahemik
  3. Koma (,): Väärtuste loendi määramiseks
  4. Eraldaja (/): Sammu väärtuse määramiseks

Crontab -faili redigeerimine

Crontab on fail, mis sisaldab ajastatud töid kindlas süntaksis. Crontab -faile on kahte tüüpi; üks süsteemispetsiifiliste cron-tööde jaoks ja teine ​​kasutajapõhiste cron-tööde jaoks.

System cron tööd

Kogu süsteemi hõlmavad croni tööd asuvad /etc/crontab fail ja /etc/cron.d kataloogi ja need käivitatakse /etc/cron.tund , /etc/cron.daily , /etc/cron.weelely ja /etc/cron.monthly. Nendele failidele pääseb juurde ainult süsteemiadministraator.

Süsteemi administraator saab määrata croni töö järgmise käsu abil:

$nano /jne/crontab

Siin on töö süntaks /etc/crontab fail:

# min hr dayofmonth month dayofweek kasutajanime käsk
* * * * *kasutaja 1ifconfig

Kasutajaspetsiifilised croni tööd

Kasutajaspetsiifilised croni tööd asuvad / var / spool / cron / crontabs kataloogi. Kuigi saate neid töid käsitsi redigeerida, on soovitatav neid tööd teha käsuga crontab -e.

Tavaline kasutaja saab croni töö määratleda järgmise käsu abil:

$crontab-Ja

Näiteks kui olete sisse logitud testkasutajana, redigeerib käsk crontab -e testkasutaja crontab -faili. Samamoodi, kui olete sisse logitud juurkasutajana, redigeerib käsk crontab -e juurkasutaja crontab -faili.

Crontab -faili muutmiseks mõne teise kasutaja jaoks andke terminalis välja järgmine käsk:

$sudocrontab-u <kasutajanimi> -Ja

Näiteks kui olete sisse logitud test1 kasutajana ja soovite test2 kasutaja crontab -faili redigeerida, oleks käsk järgmine:

$sudocrontab-utest2-Ja

Siin on cron -töö süntaks, mida saab lisada crontab -faili:

# m h dayfmonth month dayofweek käsk
* * * * * ifconfig

Kasutajaspetsiifilistes töödes näete, et kasutajanime pole esitatud.

Crontabi käsud

Käsu crontab kasutatakse cron -tööde redigeerimiseks, loendamiseks ja eemaldamiseks:

  • crontab -e Praeguse kasutaja crontab -faili muutmiseks
  • crontab -l Crontab -faili sisu kuvamiseks
  • crontab -u [kasutajanimi] Mis tahes teise kasutaja crontab -faili muutmiseks
  • crontab -r Praeguse kasutaja crontab -faili eemaldamiseks
  • crontab -i Viiba kuvamiseks enne praeguse kasutaja crontab -faili eemaldamist

Töö planeerimine Croniga

Croni abil saate käivitada tööd kindlal kellaajal, kuupäeval ja intervallidel minimaalse ühikuga minutites, st saate tööd teha iga minut.

Croniga töö ajastamiseks avage crontab -fail, kasutades eelmises jaotises kirjeldatud meetodit. Kui olete crontab -faili avanud, palutakse teil valida tekstiredaktor. Sisestage number, et valida eelistatud tekstiredaktor. Kerige allapoole faili alla ja lisage ülalkirjeldatud süntaksis töid. Iga faili rida määrab ühe käsu. Rea esimesed viis kirjet määravad ajastatud aja ja viimane kirje määrab, milline käsk või skript tuleks käivitada.

Näide:

Järgmine rida crontab-failis ajastab croni töö käskluse/skripti käivitamiseks igal nädalapäeval esmaspäevast laupäevani igal 30. minutil pärast 5 tundi.

* /30 5 * * 1-6käsk/skript

Protokoll

Sellel väljal määrame minutid, millal soovime käsku täita. See on määratud vahemikus 0 kuni 59. Sellel väljal olev * tähendab töö käivitamist iga minut. Ülaltoodud real crontab ütleb */30, et croni töö käivitab määratud käsu/skripti iga 30 minuti järel.

Tundi

Sellel väljal määrame kellaajad, millal soovime käsku täita. See on määratud vahemikus 0 kuni 23. Sellel väljal olev * tähendab töö käivitamist iga tund. Ülaltoodud crontabi real ütleb väärtus 5 croni töö, et käivitada määratud käsk/skript iga viie tunni järel.

Kuu päev

Sellel väljal määrame konkreetsed kuupäevad, millal soovime käsku täita. See on määratud vahemikus 1 kuni 31. Sellel väljal olev * tähendab iga päev. Ülaltoodud rida crontab käsul * käsib croni tööl käitada määratud käsku/skripti iga päev.

Aasta kuu

Sellel väljal määrame konkreetsed kuud, millal soovime käsu täitmist. See on määratud vahemikus 1 kuni 12. Sellel väljal on * iga kuu. Ülaltoodud rida crontab, * ütleb cron -i tööle, et käivitada määratud käsk/skript iga kuu.

Nädalapäev

Sellel väljal määrame konkreetsed nädalapäevad, mil soovime käsu täitmist. See on määratud pühapäevast laupäevani 0 kuni 6 (pühapäeval 0 ja laupäeval 6). Selles valdkonnas tähendab * iga päev nädalas. Ülaltoodud rida crontab, * ütleb cron -i tööle, et käivitada määratud käsk/skript iga päev nädalas.

Cron Jobsi näited

Siin on mõned näited cron -tööde kohta:

Käivitage croni töö iga 15 minuti järel

Croni töö käivitamiseks iga 15 minuti tagant lisage crontab -faili järgmine rida:

* /viisteist * * * *käsk/skript

Tehke iga päev kell 5 hommikul croni tööd

Croni töö ajastamiseks iga päev kell 5 hommikul lisage crontab -faili järgmine rida:

0 5 * * *käsk/skript

Tehke iga päev kell 17.00 croni tööd

Croni töö ajastamiseks iga päev kell 17.00 lisage crontab -faili järgmine rida:

0 17 * * *käsk/skript

Käivitage croni töö iga kuu esimesel päeval kell 9 hommikul

Croni töö ajastamiseks iga kuu esimesel päeval kell 9.00 lisage crontab -faili järgmine rida:

0 9 1 * *käsk/skript

Käivitage cron -töö igal tunnil igal 15. märtsil

Croni töö planeerimiseks igal tunnil iga 15. märts lisage crontab -faili järgmine rida:

0 * viisteist 3 *käsk/skript

Tehke croni tööd iga 5 tunni järel

Croni töö ajastamiseks iga 5 tunni järel lisage crontab -faili järgmine rida:

0 * /5 * * *käsk/skript

Käivitage croni töö iga 15 minuti järel

Croni töö käivitamiseks iga 15 minuti tagant lisage crontab -faili järgmine rida:

* /viisteist * * * *

Stringide kasutamine

Töö määratlemiseks võib kasutada ka järgmisi stringe:

  1. @tund: Töö tegemiseks üks kord tunnis, st 0 * * * *
  2. @kesköö: Tööd teha üks kord päevas, st 0 0 * * *
  3. @iga päev: sama mis keskööl
  4. @nädal: Tööd teha üks kord nädalas, st. 0 0 * * 0
  5. @igakuine: Tööd teha üks kord kuus, st 0 0 1 * *
  6. @igal aastal: Tööd teha üks kord aastas, st. 0 0 1 1 *
  7. @aasta: sama mis @igal aastal
  8. @reboot: Töö käivitamiseks üks kord igal käivitamisel

Näiteks skripti või käsu käivitamiseks igal nädalal oleks crontab -faili kirje järgmine:

@iganädalane käsk/skript

Eelmääratletud Croni kataloogid

Linuxis on mõned eelnevalt määratletud cron-kataloogid, kus salvestatud skriptid käivitatakse automaatselt. Kui paigutame nende kataloogide alla mis tahes skripti, käivitatakse see automaatselt seadistatud ajal.

  • /etc/cron.daily
  • /etc/cron.tund
  • /etc/cron.monthly
  • /etc/cron.weelely

Näiteks skripti kord kuus käivitamiseks peate selle paigutama kausta /etc/cron.monthly.

Vaata Croni töökohti

Vaadake praeguse kasutaja töid

Kasutage järgmist käsku praeguse kasutaja kõigi ajastatud cron -tööde vaatamiseks:

$crontab-neid

Vaadake juurkasutajate töid

Juurkasutaja kõigi ajastatud tööde vaatamiseks andke terminalis järgmine käsk:

$kass /jne/crontab

Peate olema sisse logitud juurkasutajana või käivitama käsu sudo.

Vaadake teiste kasutajate töid

Konkreetse kasutaja kõigi ajastatud tööde vaatamiseks andke terminalis järgmine käsk, asendades reaalse kasutajanimega:

$sudocrontab-u <kasutajanimi> -neid

Selle käsu käivitamiseks vajate sudo õigusi.

Vaadake croni tunnitöid

Kõigi tunnitööks konfigureeritud cron -tööde vaatamiseks andke terminalis järgmine käsk:

$ls -neid /jne/cron.tund

Vaadake croni igapäevaseid töid

Kõigi igapäevaseks käitamiseks konfigureeritud cron -tööde vaatamiseks andke terminalis järgmine käsk:

$ls -neid /jne/cron.daily/

Vaadake croni iganädalasi töid

Kõigi iganädalaseks käitamiseks konfigureeritud cron -tööde vaatamiseks andke terminalis järgmine käsk:

$ls -neid /jne/cron.nädalaselt/

Vaadake igakuiseid croni töid

Kõigi igakuiseks töötamiseks konfigureeritud cron -tööde vaatamiseks andke terminalis järgmine käsk:

$ls -neid /jne/cron.kuus/

Varundage kõik Croni tööd

Soovitatav on hoida failis kõigi croni tööde varukoopia, et saaksite kustutamise korral taastuda. Kõigi praeguste tööde varundamiseks kasutage ümbersuunamisoperaatorit, et suunata crontab -l väljund faili.

$crontab-neid >backup_cron.txt

Kõigi plaanitud Cron -tööde eemaldamine

Kõigi ajastatud cron -tööde eemaldamiseks kasutage lippu -r järgmiselt.

$crontab-r

Cron luba

Me saame piirata juurdepääsu crontab käsule kahe faili kaudu: / etc/cron.allow ja/etc/cron.deny.

  • /etc/cron.allow - Lisage kasutajaid (üks rea kohta), kellele soovite lubada juurdepääsu crontab käskudele. Need kasutajad saavad käivitada graafikutöid.
  • /etc/cron.deny - Lisage kasutajaid (üks rea kohta), kellelt soovite keelata juurdepääsu crontab käskudele. Need kasutajad ei saa ajastatud töid käivitada.

Crontabi süntaksigeneraatorid

On veebisaite, mis võimaldavad genereerida crontab -ide süntaksit. Need veebisaidid hõlbustavad crontab -avaldise loomist ilma süntaksi meelde jätmata. Kuigi süntaksigeneraatorite jaoks on saadaval mitmesuguseid veebisaite, näiteks crontabgenerator.com , crontab-generator.org ja cronmaker.com . Üks, mida ma enamasti eelistan ja millest olen abi leidnud, on crontab.guru . Kasutaja sisendi põhjal loob see crontab-avaldise, mille saate kopeerida-kleepida crontab-faili.

Järeldus

Selles õpetuses oleme selgitanud croni tööde põhitõdesid, selle süntaksit ja selle seadistamist. Oleme arutanud ka seda, kuidas vaadata croni töid, luua varukoopia ja eemaldada need, kui neid enam ei vajata.