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:
- Tärn (*): Välja kõigi võimalike väärtuste määramiseks
- Kriips (-): To s täpsustage väärtuste vahemik
- Koma (,): Väärtuste loendi määramiseks
- 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/crontabSiin 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-JaNä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> -JaNäiteks kui olete sisse logitud test1 kasutajana ja soovite test2 kasutaja crontab -faili redigeerida, oleks käsk järgmine:
$sudocrontab-utest2-JaSiin 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/skriptTehke 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/skriptTehke 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/skriptKä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/skriptKä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/skriptTehke 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/skriptKä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:
- @tund: Töö tegemiseks üks kord tunnis, st 0 * * * *
- @kesköö: Tööd teha üks kord päevas, st 0 0 * * *
- @iga päev: sama mis keskööl
- @nädal: Tööd teha üks kord nädalas, st. 0 0 * * 0
- @igakuine: Tööd teha üks kord kuus, st 0 0 1 * *
- @igal aastal: Tööd teha üks kord aastas, st. 0 0 1 1 *
- @aasta: sama mis @igal aastal
- @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/skriptEelmää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-neidVaadake juurkasutajate töid
Juurkasutaja kõigi ajastatud tööde vaatamiseks andke terminalis järgmine käsk:
$kass /jne/crontabPeate 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> -neidSelle 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.tundVaadake 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.txtKõigi plaanitud Cron -tööde eemaldamine
Kõigi ajastatud cron -tööde eemaldamiseks kasutage lippu -r järgmiselt.
$crontab-rCron 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.