Käivitage iga minut Croni tööd

Run Cron Job Every Minute

Kui soovite Linuxis programmi või skripti taustal käivitada, on cron job väga oluline. Cron -tööde abil saate pärast teatud ajavahemikku taustal käivitada programmi või skripti.

Vaatame mõningaid näiteid cron -tööde tegelikust elust.



  • Oletame, et teil on veebisait ja soovite oma veebisaidi kasutajatele iga päev meili saata. Kõik, mida pead tegema, on kirjutada e -kirja saatmise skript ja seadistada croni töö, et seda skripti iga päev käivitada.
  • Oletame, et teil on reklaamibüroo ja soovite kõigile reklaamijatele, kelle saldo on alla 5 dollari, uuesti laadida. Peate ainult kirjutama skripti, mis kontrollib kõigi reklaamijate saldot ja kui see on alla 5 dollari, saadab see teate reklaamija mobiilinumbrile või e -posti aadressile. Seejärel seadistage croni töö, et käivitada skript iga 5–10 minuti või tunni tagant.

Linuxis on palju muid cron -tööde kasutusviise.



Selles artiklis näitan teile, kuidas Linuxis iga minut croni töid käivitada. Demonstratsiooniks kasutan Debian 9 Stretchit. Kuid võite kasutada mis tahes teie valitud kaasaegset Linuxi distributsiooni. Alustame.



Linuxis ei pea te seda olema juur croni tööde käivitamiseks. Saate käivitada croni töid nagu iga kasutaja. Iga Linuxi kasutaja saab kasutada a crontab faili, et käivitada oma cron -tööde komplekt.

Vaikimisi pole kasutajal a crontab fail Linuxis. Saate luua a crontab faili järgmise käsuga:

$crontab-Ja



Kui käivitate selle käsu esimest korda, peaksite paluma loendist valida tekstiredaktori. Ma valin nano , vaikimisi. Saate valida endale meelepärase. Kui olete lõpetanud, vajutage .

The crontab fail tuleks luua (kui see pole juba saadaval) ja avada oma lemmiktekstiredaktoriga. Nüüd saate selle faili lõppu lisada oma croni tööd ja kui olete õnnelik, salvestage see lihtsalt ja väljuge tekstiredaktorist.

Käsu iga minuti tagant käitamise süntaks:

Süntaks crontab fail on järgmine:

minut tund dayOfMonth month dayOfWeek käskToRun

Siin,

  • minut võib olla 0 et 59 .
  • tund võib ka olla 0 et 59 .
  • dayOfMonth võib olla 1 et 31 .
  • kuu võib olla 1 et 12 .
  • dayOfWeek võib olla 0 et 7 . 0 ja 7 tähendab pühapäeva, 1 tähendab esmaspäeva, 2 tähendab teisipäeva ja nii edasi.

Jooksmiseks a commandToRun käsku iga minut, peaksite selle kausta kirjutama crontab fail järgmiselt:

* * * * *commandToRun

Kroobitöö käivitamine iga minuti järel:

Nüüd, kui teooriaid teame, lisame lihtsa skripti taimer.sh juurde crontab faili ja vaadake, kuidas seda hallata.

Aastal taimer.sh skripti, on mul ainult järgmised koodiridad. Kõik, mida see teeb, on uue faili loomine /home/shovon/bin/timer.log (kui seda juba pole) ja lisab sellele kuupäeva käsu väljundi.

Nüüd lisame skripti meie juurde crontab ja laske sellel iga minuti järel töötada järgmise reaga:

* * * * * /Kodu/kühvel/olen/taimer.sh

Kui olete salvestanud crontab faili ja väljuge tekstiredaktorist, uus crontab fail tuleks installida.

Pärast minuti möödumist kuvatakse uus fail taimer.log luuakse soovitud kataloogi, nagu näete alloleval ekraanipildil märgitud osas.

Alates taimer.log logifaili, on ilmne, et skript taimer.sh jookseb iga minut.

Cron Jobs'i vead:

Cron -töö vigade püüdmiseks võite vead saata aadressile a error.log fail ja tavalised väljundid access.log fail näiteks. Loomulikult võite failidele nimetada mida iganes soovite.

Selle demonstreerimiseks muutsin oma skripti taimer.sh natukene. Nüüd saadetakse vead aadressile error.log fail kaustas / home / shovon / bin kataloog ja väljundid saadetakse aadressile access.log aastal / home / shovon / bin kataloogi.

Alguses /tmp/i_must_be_siin faili ei eksisteeri, nii et saan vea error.log fail, nagu näete.

The access.log fail on hetkel tühi.

Nüüd hakkan faili looma /tmp/i_must_be_siin

Ja nagu näete, on väljund kaustas access.log fail nüüd.

Soovi korral saate väljundi ja vead samas failis ümber suunata järgmiselt.

Nagu näete, saadetakse STDIN ja STDERR väljundid välja.log faili.

Veenduge, et viimane töö lõpetas enne töö uuesti käivitamist:

Selle toimimiseks saate kohe pärast töö alustamist luua ajutise faili ja eemaldada selle vahetult enne selle lõppu. Seejärel saate enne töö alustamist kontrollida, kas ajutine fail on olemas. Kui see juhtub, saate töölt lahkuda ja tööd käivitada ainult siis, kui ajutine fail pole saadaval.

See lihtne skript teeb just seda.

Nagu näete, taimer.pid fail on loodud.

Lugedes access.log fail tõestab, et croni töö ei käivitu enne, kui eelmine croni 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 ei läinud. Selle asemel jooksis see kell 01:35:01, umbes 3 minutit hiljem.

Croni tööväljundite korraldamine lihtsaks silumiseks:

Saate oma väljundeid ilusti vormindada, et muuta teie croni töö silumine lihtsamaks.

Näide selle kohta, kuidas seda teha, on toodud järgmises skriptis.

Nagu näete, on väljundid, vead ja edusõnumid logifaili kenasti trükitud.

Croni tööde ja shelliskriptidega saate teha hämmastavaid asju. Näitasin siin mõnda ideed. Kuid taevas on teie piir. Katsetage julgelt mis tahes ideedega. Täname, et lugesite seda artiklit.