Tässä artikkelissa selitetään tehtävien ajoitus ja komentosarjojen suorittaminen säännöllisin väliajoin cron-töitä käyttämällä.
Mikä on Cron?
Cron on tehtävien ajoitusohjelma, joka toimii taustalla prosessina. Sitä voidaan käyttää ajoittain tiettyihin ajoitettuihin töihin käyttämällä ennalta määritettyjä sääntöjä. Cron on esiasennettu useimpiin Linux-jakeluihin tai saatavana arkistoissa manuaalisesti asennettavaksi.
Cron-esiasetukset
Cron on Ubuntussa mukana joukko ennalta määritettyjä ajastimia. Voit tarkistaa ne suorittamalla alla olevan komennon:
$ ls / etc / cron.*Yleensä nämä kansiot ovat “/ etc / cron.tunneittain ”,“ / etc / cron.päivittäin ”,“ / etc / cron.kuukausittain ”ja” / etc / cron.viikoittain".
Laita vain haluamasi komentosarjat johonkin näistä kansioista automaattisten tehtävien suorittamiseksi tunneittain, päivittäin, kuukausittain tai viikoittain.
Huomaa, että cron käyttää oletuksena "/ bin / sh" -kuorta. Jos haluat käyttää ”/ bin / bash” -kuvaketta cron-skripteissä, sinun on käytettävä!# / bin / bash ”hashbang komentotiedoston yläosassa tai määritä kuori muuttujaksi“ SHELL = / bin / bash ”ajoitetun bash-komentosarjan ensimmäisellä rivillä. SHELL-ympäristömuuttujan korvaaminen toimii myös alla selitetyssä crontab-editorissa.
Kaikki järjestelmän ympäristömuuttujat eivät välttämättä ole alttiina cron-töille. Joten on yleensä hyvä määritellä tärkeät ympäristömuuttujat manuaalisesti cronin aikatauluttamaan komentosarjaan.
Crontab
Crontabin avulla voit määrittää omat ajoitetut tehtävät. Sen avulla voit määrittää cron-aikataulut, jotka poikkeavat neljästä yllä selitetystä tavallisesta cron-esiasetuksesta.
Voit asettaa ajoitetun tehtävän crontab-sovellukseen käynnistämällä crontab-editorin ensin alla olevan komennon avulla:
$ crontab -eNyt tiedoston loppuun voit lisätä merkinnän seuraavassa muodossa:
minuutti tunti päivä kuukausi arkipäivä / full / path / to / script.shMissä:
- minuutti: mikä tahansa arvo välillä 0-59
- tunti: mikä tahansa arvo välillä 0–23, 0 on keskiyö
- päivä: mikä tahansa arvo välillä 1-31
- kuukausi: mikä tahansa arvo välillä 1-12
- viikonpäivä: mikä tahansa arvo alueella 0–6, 0 on sunnuntai
Alla oleva crontab-merkintä ottaa kuvakaappauksen työpöydällesi ja tallentaa sen kotihakemistoon kerran 15. maaliskuuta kello 15:13 2. maaliskuuta plus joka maaliskuun tiistai klo 15.13.
13 15 2 3 2 scrotVoit luetella kaikki crontab-merkinnät seuraavalla komennolla:
$ crontab -lLisää esimerkkejä
Cron-tehtävät voidaan parhaiten selittää esimerkkien avulla, joten alla on joitain esimerkkejä, jotka ottavat säännöllisesti kuvakaappauksia työpöydältäsi ja tallentavat ne kotikansioon.
Viiden ajoitusmuuttujan lisäksi cron käyttää myös joitain erityisiä merkkijonoja töiden ajoitukseen. Nämä kielet ovat:
- @ tunti: työ suoritetaan joka tunti
- @ päivittäin / @ midnight: työtä suoritetaan joka päivä
- @ viikoittain: työ suoritetaan kerran viikossa
- @kuukausittain: työ suoritetaan kerran kuukaudessa
- @vuotta / @vuotta: työ suoritetaan kerran vuodessa
- @reboot: työ suoritetaan kerran uudelleenkäynnistyksen / sisäänkirjautumisen yhteydessä
Alla oleva crontab-merkintä ottaa kuvakaappauksen jokaisesta uudelleenkäynnistyksestä:
@reboot scrotVoit korvata ”@reboot” muilla yllä mainituilla erikoismerkinnöillä.
Asteriskin tai jokerimerkin käyttäminen minkä tahansa viiden muuttujan sijasta toistaa työn muuttujan kaikissa uusissa esiintymissä. Alla olevasta merkinnästä otetaan kuvakaappaus joka minuutti:
* * * * * ScrotJoka tunti:
0 * * * * scrotJoka päivä klo 18.00:
0 18 * * * scrotJoka kuukausi 6. klo 18.00:
0 18 6 * * scrotKäytä komentoa "/" suorittaaksesi komentosarjan kiinteänä 30 minuutin jaksona (suoritetaan 30 minuutin välein):
* / 30 * * * * scrotVoit käyttää pilkuilla erotettuja muuttujia määritelläksesi komentosarjan toistuvan suorituksen säännöllisin väliajoin. Alla oleva esimerkki ottaa kuvakaappauksen työpöydältäsi uuden tunnin joka 1., 4. ja 5. minuutti.
1,4,5 * * * * scrotCrontab-merkintöjen tarkistaminen
Crontab-merkintöjen määrittely voi olla hankalaa, mutta niiden virheenkorjaus tai niiden oikeaan aikaleimoihin tekemisen tarkistaminen on vielä hankalampaa. Yksi vaihtoehto on käyttää virtuaalikonetta ja kirjata ajoittain cron-työssä ajettavan komentosarjan aikaleimat sisällyttämällä jotain esimerkiksi "date" -komentoa ja ohjaamalla ulostulo tekstitiedostoon. Parempi ratkaisu on kuitenkin käyttää yhtä lukuisista verkossa saatavilla olevista online-cron-työpaikkojen testauspalveluista. Suosittelen antamaan cron tester -sivusto saataville tässä yritys.
Johtopäätös
Cron-töiden suorittaminen on erinomainen tapa automatisoida toistuvia tehtäviä, erityisesti palvelimilla. Työkalu on erittäin tehokas ja muokattavissa. On kuitenkin tärkeää varmistaa, että aikatauluttajan määrittely toimii oikein, varsinkin jos on kriittisiä tehtäviä.