Säännöllisten tehtävien ajoittaminen Cronilla Linuxissa
cron
on Linux-ohjelma, jota käytetään ajoittamaan komento tai komentosarja suoritettavaksi myöhempänä ajankohtana. Sitä voidaan myös käyttää ajoittamaan määräajoin suoritettavia komentoja ja komentosarjoja. Cronin avulla ajoitettuja ohjelmia kutsutaan yleisesti nimellä Cron Jobs. Sen pääkäyttö on järjestelmänhallintatehtäviä, kuten säännöllisiä varmuuskopioita, säännöllisiä ohjelmistopäivityksiä ja muita vastaavia ylläpitotehtäviä.
Johdanto
cron
toimii demonina Linuxissa, eli taustaprosessina. Sen avulla käyttäjät voivat ajoittaa töitä suoraan crontab-komennolla, joka avaa editorissa Cron File -nimisen määritystiedoston. Jokaiselle käyttäjälle luodaan erilliset Cron-tiedostot.
Cron-tiedoston ja perussyntaksin luominen
The crontab
komento voidaan suorittaa -e
lippu muokataksesi olemassa olevaa Cron-tiedostoa. Jos tiedostoa ei vielä ole, se luodaan. Jos käyttäjä kutsuu komentoa ensimmäistä kertaa ja jos Linux-järjestelmään on asennettu useita tiedostoeditoreja, komento pyytää käyttäjää valitsemaan oletuseditorin editorien luettelosta.
Kun olet valinnut editorin, käyttäjälle luodaan ja avataan cron-tiedosto. Voit nyt määrittää työpaikkoja tiedostoon.
Yleinen syntaksi Cron-työn määrittämiselle on:
Periaatteessa, suoritetaan määritetyllä minuutilla (0-59), tunnilla (0-23), kuukauden päivällä (1-31), kuukaudella (1-12), viikonpäivänä (0-7, Sunnuntaina voidaan käyttää joko 0 tai 7) Cron-työssä. Otetaan yksinkertaistamiseksi esimerkki:
1 2 3 4 5 echo "Hei"
Tämä tarkoittaa käskyä echo "Hei"
toimii joka viides päivä viikossa (perjantai) ja joka kuukauden 3. päivä, joka 4. kuukausi vuodessa (huhtikuu), kello 02:01 (2. tunnin ensimmäinen minuutti).
Jos sama komento suoritetaan joka päivä klo 02:01, syntaksi näyttää tältä:
1 2 * * * echo "Hei"
The *
tarkoittaa "aina" tai "kaikille", esim. kaikille kuukausille, kaikille viikonpäiville jne.
Komentooperaattori (,
) voidaan syöttää arvoluettelo, kun tehtävä tulee toistaa. Esimerkiksi:
0 2,3,4 * * * echo "Hei"
Tämä suorittaa ohjelman joka päivä klo 2, 3 ja 4.
Samoin, yhdysmerkki (-
) -operaattori voidaan määrittää alueen, jolle tehtävä toistetaan. Esimerkiksi:
0-20 2 * * * echo "Hei"
Tämä suorittaa ohjelman klo 02:00, 02:01, 02:02 ja niin edelleen klo 02:20 asti.
Lopulta meillä on kauttaviiva ( /
) -operaattori. Tätä operaattoria käytetään määrittämään intervalliarvo, jonka mukaan tehtävä toistetaan. Esim. */15
minuuttikentässä tarkoittaa, että tehtävä tulee toistaa 15 minuutin välein. 2-10/2
Tuntikentässä määrittää, että tehtävä toistetaan klo 2–10 jokaisen 2 tunnin välein (kello 2, 4, 6, 8, 10).
**/15 2-10/2 * * * echo "Hei"
Kun olet tehnyt merkinnän Cron-tiedostoon, tallenna tiedosto ja poistu editorista.
Sinun pitäisi nähdä a "asenna uusi crontab" viesti päätteessä crontab-tiedoston tallentamisen ja siitä poistumisen jälkeen.
Makrot
Tietyt makrot on ennalta määritetty Cronissa, jotka määrittävät joitain yleisesti vaadittuja aikavälejä, kuten joka tunti, joka päivä, joka kuukausi jne.
Jos haluat suorittaa tehtävän kerran päivässä päivän alussa, eli klo 00:00, käytä makroa @päivittäin
. Tämä vastaa 0 0 * * *
.
Voit laittaa tämän Cron-tiedostoon samalla tavalla kuin edellä on kuvattu.
Samalla tavalla voidaan käyttää muita makroja, esim. @tunti
(minuutti 0 jokaisesta tunnista), @kuukausittain
(00:00 kuukauden ensimmäisenä päivänä), @viikoittain
(00:00 viikon ensimmäisenä päivänä, @vuosittain
(00.00 tammikuun ensimmäisenä joka vuosi), @reboot
(jokaisella tietokoneen käynnistyksellä).
Johtopäätös
Tässä artikkelissa opimme lisäämään Cron-töitä säännöllistä suorittamista varten Linuxissa. Cron Jobsin oikea käyttö on kätevää jopa kaikkein ärsyttävimmissä käyttäjän kohtaamissa manuaalisissa tehtävissä, esim. vanhojen lokien säännöllinen poistaminen, kaikenlaisen kylmän datan arkistointi (harvoin käsiksi päästävä data) jne.