Vaatame mõningaid tegelikke näiteid croni töökohtadest.
- Oletame, et teil on veebisait ja soovite iga päev oma veebisaidi kasutajatele meili saata. Kõik, mida peate tegema, on kirjutada e-posti saatmise skript ja seadistada croni töö, et seda skripti iga päev käivitada.
- Oletame, et teil on reklaamiagentuur ja soovite kõigile reklaamijatele, kelle saldo on alla 5 $, laadida oma laadimismeelde. Piisab, kui kirjutate skripti, mis kontrollib kõigi reklaamijate tasakaalu ja kui see on alla 5 $, saadab see teate reklaamija mobiilinumbrile või e-posti aadressile. Seejärel seadistage cron-töö skripti käitamiseks iga 5–10 minuti või iga tunni tagant.
Linuxis on palju muid croni töökohti.
Selles artiklis näitan teile, kuidas Linuxis iga minut croni töid käivitada. Ma kasutan demonstratsiooniks Debiani 9 Stretchi. Kuid võite kasutada mis tahes kaasaegset Linuxi levitamist, mida teie valitud. Alustame.
Crontabi põhitõed:
Linuxis ei pea te seda olema juur croni tööde juhtimiseks. Croni töid saate käivitada mis tahes kasutajana. Iga Linuxi kasutaja saab kasutada a crontab faili, et käivitada oma Croni tööde komplekt.
Vaikimisi pole kasutajal a crontab fail Linuxis. Võite luua a crontab fail järgmise käsuga:
$ crontab -e
Kui käitate seda käsku esimest korda, siis peaksite paluma valida loendist tekstiredaktori. Ma valin nano, vaikimisi. Saate valida endale meelepärase. Kui olete valmis, vajutage
The crontab fail tuleks luua (kui see pole veel saadaval) ja avada oma lemmiktekstiredaktoriga. Nüüd saate selle faili lõppu lisada oma Croni tööd ja kui olete rahul, siis lihtsalt salvestage see ja väljuge tekstiredaktorist.
Iga minuti käsu käivitamise süntaks:
Süntaks crontab fail on järgmine:
minut tund dayOfMonth kuu dayOfWeek commandToRunSiin,
- minut võib olla 0 kuni 59.
- tund võib ka olla 0 kuni 59.
- dayOfMonth võib olla 1 kuni 31.
- kuu võib olla 1 kuni 12.
- dayOfWeek võib olla 0 kuni 7. 0 ja 7 tähendab pühapäeva, 1 tähendab esmaspäeva, 2 tähendab teisipäeva ja nii edasi.
Et käivitada a commandToRun käsk iga minut, peaksite selle kirjutama crontab faili järgmiselt:
* * * * * käskToRunCrob-töö juhtimine iga minutiga:
Nüüd, kui teooriad on meile teada, lisame lihtsa skripti taimer.sh Euroopa crontab fail ja vaadake, kuidas seda hallata.
Aastal taimer.sh skripti, mul on ainult järgmised koodiread. Kõik, mida ta teeb, on uue faili loomine / home / shovon / bin / taimer.logi (kui seda veel pole) ja lisab sellele käsu date väljundi.
Lisame nüüd skripti oma crontab ja laske sellel iga minut järgmise rea abil töötada:
* * * * * / home / shovon / bin / taimer.sh
Kui olete salvestanud crontab fail ja väljuge tekstiredaktorist, uus crontab fail peaks olema installitud.
Minuti möödudes on uus fail taimer.logi luuakse soovitud kataloogis, nagu näete alloleva ekraanipildi märgitud jaotises.
Alates taimer.logi logifail, on ilmne, et skript taimer.sh jookseb iga minut.
Croni töökohtade vigade püüdmine:
Croni töö vigade tabamiseks võite saata vead aadressile a viga.logi fail ja tavalised väljundid juurdepääs.logi fail näiteks. Muidugi võite failidele nimetada kõik, mida soovite.
Selle demonstreerimiseks muutsin oma skripti taimer.sh natukene. Nüüd saadetakse vead aadressile viga.logi faili / home / shovon / bin kataloog ja väljundid saadetakse juurdepääs.logi aastal / home / shovon / bin kataloogi.
Algul / tmp / i_must_be_Here faili pole olemas, seega kuvatakse viga viga.logi fail, nagu näete.
The juurdepääs.logi fail on hetkel tühi.
Nüüd hakkan faili looma / tmp / i_must_be_Here
Ja nagu näete, on väljund juurdepääs.logi fail kohe.
Soovi korral saate sama faili väljundi ja vead ümber suunata järgmiselt:
Nagu näete, saadetakse STDIN ja STDERR väljundid välja.logi faili.
Veenduge, et viimane töö oleks enne töö jätkamist lõpetatud:
Selle toimimiseks saate kohe pärast töö algust luua ajutise faili ja selle vahetult enne selle lõppu eemaldada. Seejärel saate enne töö alustamist kontrollida, kas ajutine fail on olemas. Kui see juhtub, saate töölt väljuda ja selle käivitada ainult siis, kui ajutine fail pole saadaval.
See lihtne skript teeb just seda.
Nagu näete, taimer.pid fail on loodud.
Lugemine juurdepääs.logi fail tõestab, et croni töö ei käivitu enne, kui eelmine cron-töö on lõpetatud. Nagu näete, jooksis see kell 01:32:01 ja järgmine kord oleks pidanud jooksma kell 01:33:01, kuid see ei õnnestunud. Selle asemel jooksis see umbes 3 minutit hiljem kell 01:35:01.
Croni tööväljundite korraldamine hõlpsaks silumiseks:
Väljundeid saab kenasti vormindada, et hõlbustada teie croni töö silumist.
Näide selle kohta, kuidas seda saab teha, on toodud järgmises skriptis.
Nagu näete, on väljundid, vead ja eduteated logifailis kenasti trükitud.
Croni tööde ja shelliskriptidega saate teha hämmastavaid asju. Demonstreerisin siin mõnda ideed. Kuid taevas on teie piir. Katsetage julgelt oma ideedega. Täname selle artikli lugemise eest.