Kehittäjätyökalu

Cron-lausekkeen selitin

Liitä cron-rivi ja selvitä, milloin se oikeasti suoritetaan.

Cron-lausekkeen selitin Toimii laitteellasi
  • Toimii selaimessasi — tekstiäsi ei lähetetä minnekään
  • Ei rekisteröitymistä, ei kiintiöitä, ilmainen käyttää niin usein kuin haluat

Näin se toimii

Cron-syntaksi on viisi lyhyttä kenttää, jotka on helppo kirjoittaa mutta paljon vaikeampi lukea takaisin, etenkin jonkun toisen kirjoittamina. Useimmat virheet eivät ole kirjoitusvirheitä vaan väärinkäsityksiä siitä, mikä kenttä on mikä tai mitä tapahtuu, kun kaksi niistä on asetettu yhtä aikaa.

Viisi kenttää

Minuutti, tunti, kuukauden päivä, kuukausi, viikonpäivä – tässä järjestyksessä. Kuudetta, alussa olevaa sekuntikenttää käyttävät jotkin ajastimet, ja se ohitetaan täällä, jos se on mukana. Välit, luettelot ja askeleet ymmärretään kaikki.

Kuukauden päivä ja viikonpäivä yhdessä

Tähän sortuu lähes jokainen. Jos molemmille kentille on asetettu jotain muuta kuin ”*”, cron suoritetaan, kun jompikumpi täsmää, ei molemmat. ”0 0 1 * 1” suoritetaan kuukauden ensimmäisenä päivänä ja jokaisena maanantaina, ei vain maanantaina, joka sattuu olemaan ensimmäinen. Selitys kertoo tämän erikseen, kun se pätee.

Sekä 0 että 7 tarkoittavat sunnuntaita

Viikonpäiväkenttä hyväksyy arvot 0–7, ja molemmat ääriarvot tarkoittavat sunnuntaita. Tämä on yleinen yhden pieleen menemisen sekaannuksen lähde, kun ajastusta kopioidaan järjestelmästä toiseen.

Se validoi selittäessään

Alueen ulkopuoliset arvot, virheelliset välit ja nolla-askeleet ilmoitetaan kenttineen, joista ne tulivat, sen sijaan että tuotettaisiin varma mutta väärä kuvaus.

UKK

Cron-lausekkeen selitin – kysymyksiä

Mitä viisi kenttää tarkoittavat?

Minuutti, tunti, kuukauden päivä, kuukausi ja viikonpäivä, tässä järjestyksessä.

Miksi ajastukseni suoritetaan odotettua useammin?

Luultavasti siksi, että sekä kuukauden päivä että viikonpäivä on asetettu. Cron käsittelee ne TAI-ehtona, joten se suoritetaan, kun jompikumpi täsmää.

Onko sunnuntai 0 vai 7?

Molemmat. Viikonpäiväkenttä hyväksyy arvot 0–7 ja käsittelee molempia ääriarvoja sunnuntaina.

Tukeeko se sekuntikenttää?

Mahdollinen alussa oleva sekuntikenttä ohitetaan; viisi vakiokenttää selitetään.