Cron Jobs: Täydellinen aloittelijoiden opetusohjelma

Cron Jobs Complete Beginners Tutorial



Cron on hyödyllisin apuohjelma Linux- tai UNIX-tyyppisessä käyttöjärjestelmässä, joka mahdollistaa komentojen tai komentosarjojen suorittamisen tietyn aikataulun mukaisesti ilman käyttäjän toimia. Ajoitettuja komentoja ja komentosarjoja kutsutaan myös cron -töiksi. Sitä käytetään enimmäkseen toistuvien töiden automatisointiin, kuten ajoitettujen varmuuskopioiden suorittamiseen, väliaikaisten tiedostojen puhdistamiseen, järjestelmän ylläpitoon ja moniin muihin toistuviin töihin. Se on samanlainen kuin Task Scheduler Windows -käyttöjärjestelmässä.

Tässä opetusohjelmassa annamme sinulle perustiedot kaikesta, mitä sinun on ymmärrettävä työn suunnittelussa cronin kanssa. Tämä sisältää cronin perussyntaksin, crontab -tiedoston muokkaamisen, työn ajoittamisen cronilla muutamalla esimerkillä, tarkastelun cron -työstä jne.







Cron Jobin perusteet

Ymmärrämme joitain cron -työn perusteita.



Mikä on Crond?

Crond on daemon Linux -järjestelmässä, joka toimii taustalla ja tarkistaa joka minuutti, onko töitä suunniteltu silloin. Jos on, se suorittaa kyseisen työn, muuten se pysyy passiivisena.



Cron Job Syntax

Cron -työn syntaksi on seuraava:





* * * * *komento/käsikirjoitus

Vasemmalta:

  • Ensimmäinen * vastaa pöytäkirjaa (0-59)
  • Toinen * vastaa tuntia (0-23)
  • Kolmas * vastaa kuukauden päivää (1-31)
  • Neljäs * vastaa vuoden kuukautta (1-12)
  • Viides * vastaa viikonpäivää (0-6, sunnuntaista lauantaihin)

Jos haluat määrittää useita arvoja kenttään, käytä seuraavia operaattorisymboleja:



  1. Tähti (*): Kentän kaikkien mahdollisten arvojen määrittäminen
  2. Viiva (-): Vastaanottaja s määritä arvoalue
  3. Pilkku (,): Arvoluettelon määrittäminen
  4. Erotin (/): Vaihearvon määrittäminen

Crontab -tiedoston muokkaaminen

Crontab on tiedosto, joka sisältää ajoitetut työt tietyssä syntaksissa. Crontab -tiedostoja on kahdenlaisia; toinen järjestelmäkohtaisille cron-töille ja toinen käyttäjäkohtaisille cron-töille.

System cron -työt

Järjestelmän laajuiset cron-työt sijaitsevat /etc/crontab tiedosto ja /etc/cron.d hakemistoon, ja ne ajetaan läpi /etc/cron.hourly , /etc/cron.daily , /etc/cron.viikko ja /etc/cron.monthly. Vain järjestelmänvalvoja voi käyttää näitä tiedostoja.

Järjestelmänvalvoja voi määrittää cron -työn käyttämällä seuraavaa komentoa:

$nano /jne/crontab

Tässä on työn syntaksi /etc/crontab tiedosto:

# min hr dayofmonth month dayofweek käyttäjätunnus
* * * * *käyttäjä 1ifconfig

Käyttäjäkohtaiset cron-työt

Käyttäjäkohtaiset cron-työt sijaitsevat / var / spool / cron / crontabs hakemistoon. Vaikka voit muokata näitä töitä manuaalisesti, on suositeltavaa muokata niitä käyttämällä crontab -e -komentoa.

Tavallinen käyttäjä voi määrittää cron -työn käyttämällä seuraavaa komentoa:

$crontab-Ja

Jos olet esimerkiksi kirjautunut sisään testikäyttäjänä, crontab -e -komennon suorittaminen muokkaa testikäyttäjän crontab -tiedostoa. Samoin, jos olet kirjautunut sisään pääkäyttäjänä, crontab -e -komento muokkaa pääkäyttäjän crontab -tiedostoa.

Suorita alla oleva komento terminaalissa muokataksesi crontab -tiedostoa muille käyttäjille:

$sudocrontab-u <käyttäjätunnus> -Ja

Jos olet esimerkiksi kirjautunut sisään test1 -käyttäjänä ja haluat muokata test2 -käyttäjän crontab -tiedostoa, komento olisi seuraava:

$sudocrontab-utesti 2-Ja

Tässä on cron -työn syntaksi, joka voidaan lisätä crontab -tiedostoon:

# m h dayofmonth kuukausi dayofweek -komento
* * * * * ifconfig

Näet käyttäjäkohtaisissa töissä, että käyttäjätunnusta ei ole tallennettu.

Crontab -komennot

Crontab -komentoa käytetään cron -töiden muokkaamiseen, luetteloimiseen ja poistamiseen:

  • crontab -e Voit muokata nykyisen käyttäjän crontab -tiedostoa
  • crontab -l Crontab -tiedoston sisällön näyttäminen
  • crontab -u [käyttäjänimi] Muokata minkä tahansa toisen käyttäjän crontab -tiedostoa
  • crontab -r Voit poistaa nykyisen käyttäjän crontab -tiedoston
  • crontab -i Näyttää kehotteen ennen nykyisen käyttäjän crontab -tiedoston poistamista

Työn ajoittaminen Cronin kanssa

Cronin avulla voit suorittaa työn tiettynä ajankohtana, päivämääränä ja aikavälein pienimmällä yksiköllä minuutteina, eli voit suorittaa työn joka minuutti.

Jos haluat ajoittaa työn cronin kanssa, avaa crontab -tiedosto edellisessä osassa kuvatulla tavalla. Kun olet avannut crontab -tiedoston, sinua kehotetaan valitsemaan tekstieditori. Kirjoita numero ja valitse haluamasi tekstieditori. Vieritä alas tiedoston loppuun ja lisää töitä yllä kuvattuun syntaksiin. Tiedoston jokainen rivi määrittää yhden komennon. Rivin viisi ensimmäistä merkintää määrittävät ajoitetun ajan, ja viimeinen merkintä määrittää, mikä komento tai komentosarja suoritetaan.

Esimerkki:

Crontab-tiedoston seuraava rivi ajastaa cron-työn suorittamaan komennon/komentosarjan joka 30. minuutti viiden tunnin välein jokaisena viikonpäivänä maanantaista lauantaihin.

* /30 5 * * 1-6komento/käsikirjoitus

Pöytäkirja

Tässä kentässä määritämme minuutit, jolloin haluamme suorittaa komennon. Sen arvo on 0–59. * Tässä kentässä tarkoittaa työn suorittamista joka minuutti. Yllä olevalla crontab -rivillä */30 kehottaa cron -työtä suorittamaan määritetyn komennon/komentosarjan 30 minuutin välein.

Tunnit

Tässä kentässä määritämme tunnit, jolloin haluamme suorittaa komennon. Se on määritetty väliltä 0 - 23. Tämän kentän * tarkoittaa työn suorittamista joka tunti. Yllä olevalla crontab -rivillä arvo 5 käskee cron -työn suorittamaan määritetyn komennon/komentosarjan viiden tunnin välein.

Kuukauden päivä

Tässä kentässä määritämme tietyt kuukausipäivät, jolloin haluamme suorittaa komennon. Se on määritetty väliltä 1–31. * Tässä kentässä tarkoittaa joka päivä. Yllä olevassa crontab -rivissä * kertoo cron -työn suorittavan määritetyn komennon/komentosarjan joka päivä.

Vuoden kuukausi

Tässä kentässä määritämme tietyt kuukaudet, jolloin haluamme suorittaa komennon. Se määritetään väliltä 1-12. * Tässä kentässä tarkoittaa joka kuukausi. Yllä olevassa crontab -rivissä * kertoo cron -työlle, että se suorittaa määritetyn komennon/komentosarjan joka kuukausi.

Viikonpäivä

Tässä kentässä määritämme tietyt viikonpäivät, jolloin haluamme suorittaa komennon. Se on määritetty 0-6 sunnuntaista lauantaihin (0 sunnuntaille ja 6 lauantaille). * Tällä alalla * tarkoittaa joka päivä viikossa. Yllä olevassa crontab -rivissä * kertoo cron -työlle suorittaa määritetyn komennon/komentosarjan joka päivä viikossa.

Esimerkkejä Cron Jobsista

Tässä muutama esimerkki cron -töistä:

Suorita cron -työ 15 minuutin välein

Jos haluat ajoittaa cron -työn suoritettavaksi 15 minuutin välein, lisää alla oleva rivi crontab -tiedostoon:

* /viisitoista * * * *komento/käsikirjoitus

Suorita cron -työ joka päivä klo 5 aamulla

Jos haluat ajoittaa cron -työn suoritettavaksi joka päivä kello 5.00, lisää alla oleva rivi crontab -tiedostoon:

0 5 * * *komento/käsikirjoitus

Suorita cron -työ joka päivä klo 17.00

Jos haluat ajoittaa cron -työn suoritettavaksi klo 17.00 joka päivä, lisää alla oleva rivi crontab -tiedostoon:

0 17 * * *komento/käsikirjoitus

Suorita cron -työ joka kuukauden ensimmäisenä päivänä klo 9.00

Jos haluat ajoittaa cron -työn suoritettavaksi klo 9.00 joka kuukauden ensimmäisenä päivänä, lisää alla oleva rivi crontab -tiedostoon:

0 9 1 * *komento/käsikirjoitus

Suorita cron -työ joka tunti 15. maaliskuuta

Jos haluat ajoittaa cron -työn joka tunti 15. maaliskuuta, lisää alla oleva rivi crontab -tiedostoon:

0 * viisitoista 3 *komento/käsikirjoitus

Suorita cron -työ 5 tunnin välein

Jos haluat ajoittaa cron -työn 5 tunnin välein, lisää alla oleva rivi crontab -tiedostoon:

0 * /5 * * *komento/käsikirjoitus

Suorita cron -työ 15 minuutin välein

Jos haluat ajoittaa cron -työn suoritettavaksi 15 minuutin välein, lisää alla oleva rivi crontab -tiedostoon:

* /viisitoista * * * *

Jousien käyttö

Seuraavia merkkijonoja voidaan käyttää myös työn määrittämiseen:

  1. @tunti: Työn suorittaminen kerran tunnissa, esim. 0 * * * *
  2. @midnight: Suorittaa työ kerran päivässä, esim. 0 * * * *
  3. @päivittäin: sama kuin keskiyö
  4. @viikoittain: Työn suorittaminen kerran viikossa, esim. 0 0 * * 0
  5. @kuukausittain: Työn suorittaminen kerran kuukaudessa, ts. 0 0 1 * *
  6. @vuosittain: Suorittaa työ kerran vuodessa, esim. 0 0 1 1 *
  7. @vuosittain: sama kuin @vuosittain
  8. @reboot: Työn suorittaminen kerran jokaisen käynnistyksen yhteydessä

Jos haluat esimerkiksi suorittaa komentosarjan tai komennon joka viikko, crontab -tiedoston merkintä olisi seuraava:

@viikoittainen komento/käsikirjoitus

Ennalta määritetyt Cron -hakemistot

Linuxissa on joitakin ennalta määritettyjä cron-hakemistoja, joissa tallennetut komentosarjat suoritetaan automaattisesti. Jos sijoitamme minkä tahansa komentosarjan näiden hakemistojen alle, se suoritetaan automaattisesti määritettynä ajankohtana.

  • /etc/cron.daily
  • /etc/cron.hourly
  • /etc/cron.monthly
  • /etc/cron.viikko

Jos haluat esimerkiksi suorittaa komentosarjan kerran kuukaudessa, sinun on sijoitettava se /etc/cron.monthly -kansioon.

Katso Cron Jobs

Näytä nykyisen käyttäjän työt

Käytä seuraavaa komentoa nähdäksesi kaikki nykyisen käyttäjän ajoitetut cron -työt:

$crontab-he

Näytä pääkäyttäjien työt

Jos haluat nähdä kaikki pääkäyttäjän ajoitetut työt, anna seuraava komento terminaalissa:

$kissa /jne/crontab

Sinun on kirjauduttava sisään pääkäyttäjänä tai suoritettava komento sudona.

Näytä muiden käyttäjien työt

Voit tarkastella tietyn käyttäjän kaikkia ajoitettuja töitä antamalla seuraavan komennon päätelaitteessa korvaamalla todellisen käyttäjänimen:

$sudocrontab-u <käyttäjätunnus> -he

Tämän komennon suorittamiseen tarvitset sudo -oikeudet.

Tarkastele tunneittain cron -töitä

Jos haluat nähdä kaikki cron -työt, jotka on määritetty suorittamaan tunneittain, anna seuraava komento terminaalissa:

$ls -he /jne/cron. tunneittain

Tarkastele päivittäisiä cron -töitä

Jos haluat tarkastella kaikkia päivittäin suoritettavia cron -töitä, anna seuraava komento terminaalissa:

$ls -he /jne/cron. päivittäin/

Tarkastele viikoittaisia ​​cron -töitä

Jos haluat tarkastella kaikkia cron -töitä, jotka on määritetty toimimaan viikoittain, anna seuraava komento terminaalissa:

$ls -he /jne/cron. viikoittain/

Tarkastele kuukausittaisia ​​cron -töitä

Jos haluat nähdä kaikki cron -työt, jotka on määritetty toimimaan kuukausittain, anna seuraava komento terminaalissa:

$ls -he /jne/kuukausittain/

Varmuuskopioi kaikki Cron -työt

On suositeltavaa pitää varmuuskopio kaikista tiedoston cron -töistä, jotta voit palauttaa sen poistamisen yhteydessä. Jos haluat varmuuskopioida kaikki nykyiset työt, käytä uudelleenohjausoperaattoria ohjaamaan crontab -l -tulostus tiedostoon.

$crontab-he >backup_cron.txt

Kaikkien ajoitettujen Cron -töiden poistaminen

Voit poistaa kaikki ajoitetut cron -työt käyttämällä -r -lippua seuraavasti:

$crontab-r

Cron -lupa

Voimme rajoittaa crontab -komennon käyttöä kahden tiedoston kautta: / etc/cron.allow ja/etc/cron.deny.

  • /etc/cron.allow - Lisää käyttäjiä (yksi per rivi), joille haluat antaa pääsyn crontab -komentoihin. Nämä käyttäjät voivat suorittaa aikataulutöitä.
  • /etc/cron.deny - Lisää käyttäjiä (yksi per rivi), joilta haluat estää pääsyn crontab -komentoihin. Nämä käyttäjät eivät voi suorittaa ajoitettuja töitä.

Crontabin syntaksigeneraattorit

Jotkin sivustot mahdollistavat syntaksin luomisen crontab -tiedostoille. Nämä sivustot helpottavat crontab -lausekkeen luomista ilman syntaksin muistamista. Vaikka syntaksigeneraattoreille on saatavana erilaisia ​​verkkosivustoja, kuten crontabgenerator.com , crontab-generator.org ja cronmaker.com . Yksi, jota enimmäkseen pidän ja josta olen hyötynyt, on crontab.guru . Käyttäjän antamien tietojen perusteella se luo crontab-lausekkeen, jonka voit kopioida ja liittää crontab-tiedostoon.

Johtopäätös

Tässä opetusohjelmassa olemme selittäneet cron -töiden perusteet, sen syntaksin ja sen määrittämisen. Olemme myös keskustelleet siitä, kuinka tarkastella cron -töitä, luoda varmuuskopio ja poistaa ne, jos niitä ei enää tarvita.