Selles õpetuses pakume teile põhitutvustust kõigest, mida peate croniga töö ajastamiseks mõistma. See hõlmab croni põhisüntaksit, crontab-faili redigeerimist, töö kavandamist croniga koos väheste näidetega, croni töö kuvamist jne.
Croni töö põhitõed
Mõistame mõningaid croni töö põhitõdesid.
Mis on Crond?
Crond on Linuxi süsteemi deemon, mis töötab taustal ja kontrollib iga minut, kas sel ajal on tööd planeeritud. Kui on, täidab ta seda tööd, muidu jääb see passiivseks.
Croni töö süntaks
Croni töö süntaks on järgmine:
* * * * * käsk / skriptVasakult:
- 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)
Väljal mitme väärtuse määramiseks kasutage järgmisi operaatori sümboleid:
- Tärn (*): Välja kõigi võimalike väärtuste määramiseks
- Kriips (-): To stäpsustage väärtuste vahemik
- Koma (,): Väärtuste loendi määramiseks
- Eraldaja (/): Sammuväärtuse määramiseks
Crontabi faili muutmine
Crontab on fail, mis sisaldab ajastatud töid konkreetses süntaksis. Crontab-faile on kahte tüüpi; üks süsteemipõhiste cron-tööde jaoks ja teine kasutaja-spetsiifiliste cron-tööde jaoks.
System croni töökohad
Kogu süsteemi hõlmavad croni töökohad asuvad / etc / crontab fail ja / etc / cron.d kataloogi ja need käivitatakse / etc / cron.tunnis, / etc / cron.iga päev, / etc / cron.kord nädalas ja / etc / cron.igakuine. Nendele failidele pääseb juurde ainult süsteemiadministraator.
Süsteemiadministraator saab croni töö määratleda järgmise käsu abil:
$ nano / etc / crontabSiin on töö süntaks / etc / crontab fail:
# min hr kuu ja kuu kasutajanime käsk* * * * * kasutaja1 ifconfig
Kasutaja spetsiifilised croni tööd
Kasutaja spetsiifilised croni töökohad asuvad /var / spool / cron / crontabs kataloogi. Kuigi saate neid töid käsitsi redigeerida, on soovitatav neid töid muuta käsuga crontab -e.
Tavakasutaja saab croni töö määratleda järgmise käsu abil:
$ crontab -eNäiteks kui olete sisse logitud „test” kasutajana, redigeerib käsu crontab -e käivitamine „test” kasutaja crontabi faili. Samamoodi, kui olete sisse loginud juurkasutajana, redigeerib käsk crontab -e juurkasutaja crontabi faili.
Teiste kasutajate crontab-faili muutmiseks väljastage terminalis järgmine käsk:
$ sudo crontab -uNäiteks kui olete sisse logitud kui “test1” kasutaja ja soovite muuta “test2” kasutaja crontab-faili, oleks käsk järgmine:
$ sudo crontab -u test2 -eSiin on cron-töö süntaks, mida saab crontab-faili lisada:
# m h kuu kuu päev nädalakäsk* * * * * ifconfig
Kasutaja spetsiifilistel töökohtadel näete, et ühtegi kasutajanime pole esitatud.
Crontabi käsud
Crontabi käsku kasutatakse croni tööde muutmiseks, loendisse lisamiseks ja eemaldamiseks
- crontab -e Praeguse kasutaja crontab-faili muutmiseks
- crontab -l Crontab-faili sisu kuvamiseks
- crontab -u [kasutajanimi] Mis tahes muu kasutaja crontab-faili muutmiseks
- crontab -r Praeguse kasutaja crontab-faili eemaldamiseks
- crontab -i Viiba kuvamine enne praeguse kasutaja crontab-faili eemaldamist
Töö planeerimine Croniga
Croni abil saate tööd käivitada kindla aja, kuupäeva ja intervallidega minimaalse ühikuga minutites, s.t.e., saate tööd juhtida iga minut.
Croniga töö ajastamiseks avage crontabi fail eelmises lõigus käsitletud meetodi abil. Kui olete crontab-faili avanud, palutakse teil valida tekstiredaktor. Eelistatud tekstiredaktori valimiseks tippige number. Kerige alla faili lõpuni 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 kanne täpsustab, millist käsku või skripti peaks käitama.
Näide:
Järgmine crontab-faili rida ajastab croni töö käsku / skripti käivitama igal nädalapäeval esmaspäevast laupäevani iga 30. nädala möödumisel 5 tunnist.
* / 30 5 * * 1-6 käsk / skript
Protokollid
Sellel väljal täpsustame minutid, kui soovime käsu täitmist. See on täpsustatud vahemikus 0 kuni 59. Selle välja * tähendab töö käivitamist iga minut. Ülaltoodud crontab-real palub * / 30 croni tööl käivitada määratud käsk / skript iga 30 minuti järel.
Tunnid
Sellel väljal määrame kellaajad, millal soovime käsku täita. See on määratud vahemikus 0 kuni 23. Selle väli * tähendab töö juhtimist iga tund. Ülaltoodud crontab-real annab väärtus 5 käsu croni töö käivitada määratud käsk / skript iga viie tunni järel.
Kuu päev
Sellel väljal määrame konkreetsed kuupäevad, mil soovime käsu täitmist. See on täpsustatud vahemikus 1 kuni 31. Selle välja * tähendus on iga päev. Ülaltoodud crontab-real palub * cron-i tööl käivitada määratud käsk / skript iga päev.
Aasta kuu
Sellel väljal täpsustame konkreetsed kuud, mil soovime käsu täitmist. See on täpsustatud vahemikus 1 kuni 12. Selle välja * tähendus on iga kuu. Ülaltoodud crontab-real ütleb *, et cron-töö käivitab määratud käsu / skripti 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 vahemikus 0–6 (pühapäeval 0 ja laupäeval 6). Selles valdkonnas tähendab * iga päev nädalas. Ülaltoodud crontab-real palub * cron-i tööl käivitada määratud käsk / skript nädala jooksul iga päev.
Croni töökohtade näited
Siin on mõned näited croni töökohtadest:
Juhtige croni tööd iga 15 minuti järel
Croni töö ajastamiseks iga 15 minuti tagant lisage crontabi faili järgmine rida:
* / 15 * * * * käsk / skriptJuhtige croni tööd iga päev kell 5 hommikul
Croni töö ajastamiseks iga päev kell 5 hommikul lisage crontabi faili järgmine rida:
0 5 * * * käsk / skriptJuhtige croni tööd iga päev kell 17.00
Croni töö ajastamiseks iga päev kell 17.00 lisage crontabi faili järgmine rida:
0 17 * * * käsk / skriptJuhtige croni tööd iga kuu esimesel päeval kell 9 hommikul
Croni töö ajastamiseks iga kuu esimesel päeval kell 9 hommikul lisage crontabi faili järgmine rida:
0 9 1 * * käsk / skriptTehke iga 15. märtsi iga tunni tagant cron-tööd
Croni töö ajastamiseks iga tunni tagant igal 15. märtsil lisage crontabi faili järgmine rida:
0 * 15 3 * käsk / skriptJuhtige croni tööd iga 5 tunni järel
Croni töö ajastamiseks iga 5 tunni järel lisage crontabi faili järgmine rida:
0 * / 5 * * * käsk / skriptJuhtige croni tööd iga 15 minuti järel
Croni töö ajastamiseks iga 15 minuti tagant lisage crontabi faili järgmine rida:
* / 15 * * * *Stringide kasutamine
Töö määratlemiseks saab kasutada ka järgmisi stringe:
- @ tund: Töö tegemiseks üks kord tunnis, s.t.e., "0 * * * *"
- @kesköö: Töö tegemiseks üks kord päevas, st.e., "0 0 * * *"
- @daily: sama mis südaöö
- @ nädalas: Töö tegemiseks üks kord nädalas, s.t.e., "0 0 * * 0"
- @igakuine: Töö tegemiseks üks kord kuus, st.e., "0 0 1 * *"
- @aastaselt: Töö tegemiseks üks kord aastas, st.e., "0 0 1 1 *"
- @aastat: sama mis @ aastas
- @reboot: Töö sooritamiseks üks kord igal käivitamisel
Näiteks skripti või käsu käivitamiseks igal nädalal oleks crontabi failis kirje:
@nädalane käsk / skriptEelnevad Croni kataloogid
Linuxis on mõned eelnevalt määratletud croni kataloogid, kus salvestatud skriptid käivitatakse automaatselt. Kui paigutame nende kataloogide alla mõne skripti, käivitatakse see automaatselt seadistatud ajal.
- / etc / cron.iga päev
- / etc / cron.tunnis
- / etc / cron.igakuine
- / etc / cron.kord nädalas
Näiteks skripti kord kuus käivitamiseks peate selle paigutama / etc / cron-i.igakuine.
Kuva Croni töökohad
Kuva praeguse kasutaja töökohad
Praeguse kasutaja kõigi ajastatud croni tööde kuvamiseks kasutage järgmist käsku:
$ crontab -lVaadake juurkasutajate töökohti
Kõigi juurkasutaja ajastatud tööde kuvamiseks väljastage terminalis järgmine käsk:
$ kass / etc / crontabPeate olema juurkasutajana sisse logitud või käsku sudo.
Vaadake teiste kasutajate töökohti
Konkreetse kasutaja kõigi ajastatud tööde kuvamiseks väljastage terminalis järgmine käsk, asendades selle
Selle käsu käivitamiseks vajate sudoõigusi.
Vaadake tundide kaupa töökohti
Kõigi croni tööde kuvamiseks, mis on konfigureeritud töötama tunnis, väljastage terminalis järgmine käsk:
$ ls -la / etc / cron.tunnisVaadake igapäevaseid croni töökohti
Kõigi igapäevaselt käitamiseks konfigureeritud croni tööde kuvamiseks väljastage terminalis järgmine käsk:
$ ls -la / etc / cron.iga päev /Nädalate croni tööde kuvamine
Kõigi cron-tööde kuvamiseks, mis on konfigureeritud iganädalaseks käitamiseks, väljastage terminalis järgmine käsk:
$ ls -la / etc / cron.iganädalane /Vaadake igakuiseid croni töökohti
Kõigi igakuiselt käitamiseks konfigureeritud croni tööde kuvamiseks väljastage terminalis järgmine käsk:
$ ls -la / etc / cron.igakuine/Varundage kõik Croni töökohad
Soovitatav on failis hoida kõigi croni tööde varukoopia, et saaksite kustutamise korral taastada. Kõigi praeguste tööde varundamiseks tehke ümbersuunamisoperaatoriga crontab -l väljund faili suunamiseks.
$ crontab -l> backup_cron.txtKõigi plaanitud Croni töökohtade eemaldamine
Kõigi ajastatud croni tööde eemaldamiseks kasutage lippu -r järgmiselt:
$ crontab -rCroni luba
Me võime piirata juurdepääsu crontabi käsule kahe faili kaudu: / etc / cron.lubada ja / etc / cron.eitada.
- / etc / cron.lubama - Lisage kasutajad (üks rea kohta), kellele soovite lubada juurdepääsu crontabi käskudele. Need kasutajad saavad käivitada tööde ajastamise.
- / etc / cron.eitada - Lisage kasutajad (üks rea kohta), kellele soovite keelata juurdepääsu crontabi käskudele. Need kasutajad ei saa ajastatud töid käivitada.
Crontabi süntaksigeneraatorid
On mõned veebisaidid, mis võimaldavad genereerida süntaksit crontabide jaoks. Need veebisaidid hõlbustavad crontab-avaldise loomist ilma süntaksit meelde jätmata. Kuigi süntaksigeneraatorite jaoks on saadaval erinevad veebisaidid, näiteks crontabgenerator.com, crontab-generaator.org ja cronmaker.com. Üks, mida ma enamasti eelistan ja millest on abi olnud, on crontab.guru. Kasutaja sisendi põhjal genereerib see crontabi avaldise, mille saate kopeerida ja kleepida crontabi faili.
Järeldus
Selles õpetuses oleme selgitanud croni tööde põhitõdesid, nende süntaksit ja selle seadistamist. Oleme arutanud ka seda, kuidas vaadata croni töökohti, luua varukoopia ja eemaldada, kui see pole enam vajalik.