Cron-lausekkeet näyttävät satunnaisilta numeroilta ja tähdiltä, mutta ne ohjaavat milloin miljoonia ajastettuja tehtäviä suoritetaan internetissä. Olitpa sitten asettamassa varmuuskopiointiskriptiä, aikatauluttamassa sähköpostiraportteja tai konfiguroimassa CI/CD-putkea, cronin ymmärtäminen on välttämätöntä. Tämä opas tekee siitä helppoa ilmaisen Cron-jäsentimen avulla.
Mitä tarvitset
- Purettava cron-lauseke tai aikataulu jonka haluat ilmaista cronina
- Verkkoselain (Chrome, Firefox, Safari tai Edge)
- Ei tiliä tai asennusta tarvita
Vaiheittainen opas
Syötä cron-lauseke
Avaa Cron-jäsennin-työkalu. Kirjoita tai liitä cron-lauseke syöttökenttään. Kokeile esimerkiksi 0 9 * * 1. Työkalu jäsentää sen välittömästi ja näyttää mitä se tarkoittaa selkokielellä.
Lue ihmisystävällinen tulos
Jäsennin kääntää lausekkeen selkeäksi kuvaukseksi. 0 9 * * 1:lle näet jotain kuten "klo 09:00 maanantaisin." Työkalu näyttää myös seuraavat ajastetut suoritusajat, jotta voit varmistaa aikataulun toimivan odotetusti.
Säädä ja kokeile
Muokkaa lauseketta ja katso kuvauksen päivittyvän reaaliajassa. Muuta numeroa, vaihda tähti arvoksi tai lisää väli. Tämä välittömän palautteen silmukka on nopein tapa oppia cron-syntaksin ja rakentaa juuri tarvitsemasi aikataulu.
Hyvä tietää Cron-lausekkeissa on tyypillisesti viisi kenttää: minuutti, tunti, kuukauden päivä, kuukausi ja viikonpäivä. Jotkut järjestelmät lisäävät kuudennen kentän sekunteille, mutta viisi kenttää on standardi.
Viiden kentän ymmärtäminen
Cron-lauseke koostuu viidestä välilyönnillä erotetusta kentästä:
┌───────────── minuutti (0–59)
│ ┌───────────── tunti (0–23)
│ │ ┌───────────── kuukauden päivä (1–31)
│ │ │ ┌───────────── kuukausi (1–12)
│ │ │ │ ┌───────────── viikonpäivä (0–7, missä 0 ja 7 ovat sunnuntai)
│ │ │ │ │
* * * * *
Tähti * tarkoittaa "jokainen." Numero tarkoittaa "täsmälleen tällä arvolla." Tämä on perusta — kaikki muu rakentuu sen päälle.
Yleiset cron-kaavat
Tässä kaavat joita käytät useimmin. Kirjoita jokin näistä Cron-jäsentimeen nähdäksesi ne selitettyinä ja varmistettuina:
| Lauseke | Merkitys |
|---|---|
* * * * * |
Joka minuutti |
0 * * * * |
Joka tunti (minuutilla 0) |
0 9 * * * |
Joka päivä klo 9:00 |
0 9 * * 1 |
Joka maanantai klo 9:00 |
0 9 * * 1-5 |
Arkipäivisin klo 9:00 |
0 0 1 * * |
Jokaisen kuukauden ensimmäinen päivä puoliyöllä |
0 */6 * * * |
Joka 6 tunnin välein |
30 8 * * 1,3,5 |
Maanantai, keskiviikko, perjantai klo 8:30 |
0 0 * * 0 |
Joka sunnuntai puoliyöllä |
*/15 * * * * |
Joka 15 minuuttia |
Vinkki Askelussyntaksi */n tarkoittaa "joka n:s väli." Joten */15 minuuttikentässä tarkoittaa joka 15 minuuttia (0, 15, 30 ja 45 minuuttia jokaisen tunnin jälkeen). Välin syntaksi 1-5 viikonpäiväkentässä tarkoittaa maanantaista perjantaihin.
Erikoismerkkien selitys
| Merkki | Merkitys | Esimerkki |
|---|---|---|
* |
Jokainen arvo | * * * * * = joka minuutti |
, |
Useita arvoja | 0 9,17 * * * = klo 9 ja 17 |
- |
Arvoväliltä | 0 9 * * 1-5 = arkipäivisin |
/ |
Askelväli | */10 * * * * = joka 10 minuuttia |
Omien lausekkeiden rakentaminen
Cron-lausekkeen luomiseksi alusta alkaen, mieti aikatauluasi vastauksina viiteen kysymykseen:
- Millä minuutilla? (0–59 tai
*jokaisella minuutilla) - Millä tunnilla? (0–23 tai
*jokaisella tunnilla) - Kuukauden monesko päivä? (1–31 tai
*joka päivä) - Missä kuussa? (1–12 tai
*joka kuukausi) - Viikonpäivä? (0–7 tai
*joka päivä)
Esimerkiksi "Joka tiistai ja torstai klo 14:30" muuttuu: minuutti=30, tunti=14, päivä=, kuukausi=, viikonpäivä=2,4, antaen sinulle 30 14 * * 2,4.
Tärkeää Cron käyttää 24 tunnin aikaa. klo 9 on 9, mutta klo 21 on 21. Huomaa myös, että aikavyöhykkeet riippuvat cron-työtä suorittavasta palvelimesta, ei paikallisesta ajastasi. Vahvista aina mitä aikavyöhykettä järjestelmäsi käyttää.
Usein kysytyt kysymykset
Mitä tapahtuu jos asetan sekä kuukauden päivän että viikonpäivän? Standardissa cronissa työ suoritetaan kun jompikumpi ehto täyttyy (se on TAI, ei JA). Tämä yllättää monet. Jos tarvitset molemmat ehdot, käytä wrapperskriptiä joka tarkistaa päivämäärän.
Voinko ajastaa jonkin suoritettavaksi joka 2 tunti?
Kyllä. Käytä 0 */2 * * * joka suoritetaan minuutilla 0 joka toisella tunnilla.
Mitä eroa on 5-kenttäisellä ja 6-kenttäisellä cronilla? Jotkut järjestelmät (kuten Spring, Quartz) lisäävät sekuntikentän alussa. Standardissa Unix-cronissa on viisi kenttää. Cron-jäsennin tukee molempia muotoja.
Seuraavat vaiheet
Nyt kun voit lukea ja kirjoittaa cron-lausekkeita, kokeile rakentaa aikatauluja projekteillesi. Jos työskentelet muiden kehittäjätyökalujen kanssa, tutustu Regex-testaajaaan kaavioiden täsmäyttämiseen tai JSON-muotoilijaan konfigurointitiedostojen käsittelyyn.