Suorita Cron -työ joka minuutti

Run Cron Job Every Minute



Jos haluat suorittaa ohjelman tai komentosarjan taustalla Linuxissa, cron -työ on erittäin tärkeää. Cron -töiden avulla voit suorittaa ohjelman tai komentosarjan taustalla tietyn ajan kuluttua.

Katsotaanpa joitain todellisia esimerkkejä cron -töistä.







  • Oletetaan, että omistat verkkosivuston ja haluat lähettää kaikille sivustosi käyttäjille sähköpostin joka päivä. Sinun tarvitsee vain kirjoittaa sähköpostin lähetysskripti ja määrittää cron -työ suorittaaksesi komentosarja joka päivä.
  • Oletetaan, että omistat mainostoimiston ja haluat muistuttaa kaikkia mainostajia, joiden saldo on alle 5 dollaria, lataamaan. Sinun tarvitsee vain kirjoittaa komentosarja, joka tarkistaa kaikkien mainostajien saldon. Kun se on alle 5 dollaria, se lähettää ilmoituksen mainostajan matkapuhelinnumeroon tai sähköpostiosoitteeseen. Määritä sitten cron -työ suorittamaan komentosarja 5-10 minuutin välein tai tunnin välein.

Linuxissa on monia muita cron -töiden käyttötapoja.



Tässä artikkelissa näytän sinulle, kuinka suorittaa cron -töitä joka minuutti Linuxissa. Käytän esittelyyn Debian 9 Stretchiä. Voit kuitenkin käyttää mitä tahansa nykyaikaista Linux -jakelua. Aloitetaan.



Linuxissa sinun ei tarvitse olla juuri cron -töiden suorittamiseksi. Voit suorittaa cron -töitä kuten kuka tahansa käyttäjä. Jokainen Linux -käyttäjä voi käyttää crontab tiedostoa omien cron -töiden suorittamiseksi.





Oletuksena käyttäjällä ei ole crontab tiedosto Linuxissa. Voit luoda crontab tiedosto seuraavalla komennolla:

$crontab-Ja



Jos käytät tätä komentoa ensimmäistä kertaa, sinua pyydetään valitsemaan tekstieditori luettelosta. Minä valitsen nano , oletusarvo. Voit valita haluamasi. Kun olet valmis, paina .

The crontab tiedosto on luotava (jos se ei ole jo saatavilla) ja avattava suosikkitekstieditorillasi. Nyt voit lisätä omat cron -työt tämän tiedoston loppuun ja kun olet tyytyväinen, tallenna se ja poistu tekstieditorista.

Syntaksi ajaa komento joka minuutti:

Syntaksi crontab tiedosto on seuraava:

minuutti tunti dayOfMonth month dayOfWeek -komentoToRun

Tässä,

  • minuutti voi olla 0 kohteeseen 59 .
  • tunnin voi myös olla 0 kohteeseen 59 .
  • dayOfMonth voi olla 1 kohteeseen 31 .
  • kuukausi voi olla 1 kohteeseen 12 .
  • viikonpäivä voi olla 0 kohteeseen 7 . 0 ja 7 tarkoittaa sunnuntaita, 1 tarkoittaa maanantaita, 2 tarkoittaa tiistaita ja niin edelleen.

Suorittaaksesi a commandToRun komento joka minuutti, kirjoita se kohtaan crontab tiedosto seuraavasti:

* * * * *commandToRun

Crob -työn suorittaminen joka minuutti:

Nyt kun tiedämme teoriat, lisätään yksinkertainen käsikirjoitus timer.sh kohteeseen crontab tiedosto ja katso kuinka voit hallita sitä.

Kohteessa timer.sh script, minulla on vain seuraavat koodirivit. Ainoa mitä se luo, on uuden tiedoston luominen /home/shovon/bin/timer.log (jos sitä ei ole jo olemassa) ja liittää siihen päivämääräkomennon tuloksen.

Lisätään nyt käsikirjoitus meidän crontab ja anna sen käydä joka minuutti seuraavalla rivillä:

* * * * * /Koti/shovon/olen/timer.sh

Kun olet tallentanut crontab tiedosto ja poistu tekstieditorista, uusi crontab tiedosto on asennettava.

Minuutin kuluttua uusi tiedosto on timer.log luodaan haluttuun hakemistoon, kuten näet alla olevan kuvakaappauksen merkityssä osassa.

Alkaen timer.log lokitiedosto, on selvää, että käsikirjoitus timer.sh kulkee joka minuutti.

Virheitä Cron -töistä:

Jos haluat saada virheitä cron -työstä, voit lähettää virheet osoitteeseen error.log tiedosto ja normaalit lähdöt access.log tiedosto esimerkiksi. Tietenkin voit nimetä tiedostot mitä haluat.

Tämän osoittamiseksi muutin käsikirjoitustani timer.sh hieman. Nyt virheet lähetetään osoitteeseen error.log tiedosto / home / shovon / bin hakemistoon ja lähdöt lähetetään access.log kohdassa / home / shovon / bin hakemistoon.

Aluksi /tmp/i_must_be_here tiedostoa ei ole, joten saan virheilmoituksen error.log tiedosto kuten näet.

The access.log tiedosto on tällä hetkellä tyhjä.

Nyt aion luoda tiedoston /tmp/i_must_be_here

Ja kuten näette, ulostulo on access.log tiedosto nyt.

Jos haluat, voit ohjata lähdön ja virheet samaan tiedostoon seuraavasti:

Kuten näette, STDIN- ja STDERR -lähdöt lähetetään ulos.log tiedosto.

Varmista, että viimeinen työ päättyi ennen työn suorittamista uudelleen:

Jotta tämä toimisi, voit luoda väliaikaisen tiedoston heti työn aloittamisen jälkeen ja poistaa sen juuri ennen sen päättymistä. Sitten voit tarkistaa, onko väliaikainen tiedosto olemassa, ennen työn aloittamista. Jos näin on, voit poistua työstä ja suorittaa työn vain, kun väliaikainen tiedosto ei ole käytettävissä.

Tämä yksinkertainen käsikirjoitus tekee juuri sen.

Kuten näette, ajastin.pid tiedosto luodaan.

Lukeminen access.log tiedosto osoittaa, että cron -työtä ei suoriteta ennen kuin edellinen cron -työ on päättynyt. Kuten näette, se juoksi kello 01:32:01 ja seuraavan kerran sen olisi pitänyt juosta kello 01:33:01, mutta ei. Sen sijaan se juoksi kello 01:35:01, noin 3 minuuttia myöhemmin.

Cron -työn tulosten järjestäminen helppoa virheenkorjausta varten:

Voit muotoilla lähdöt hienosti, jotta cron -työsi on helpompi korjata.

Esimerkki siitä, miten se voidaan tehdä, annetaan seuraavassa skriptissä.

Kuten näette, lähdöt, virheet ja onnistumisviestit tulostetaan kauniisti lokitiedostoon.

Voit tehdä hämmästyttäviä asioita cron -töiden ja komentosarjojen avulla. Esittelin joitain ideoita täällä. Mutta taivas on rajasi. Voit vapaasti kokeilla mitä tahansa ideoita. Kiitos tämän artikkelin lukemisesta.