raatools/

Cron-lausekegeneraattori

Rakenna ja tulkitse viisikenttäisiä cron-lausekkeita visuaalisesti.

Format: minute hour day-of-month month day-of-week

Use * for any value, 0-5 for ranges, 1,3,5 for lists, */5 for every N

Cron Expression
* * * * *
Description

every minute

Mika on cron?

Cron on standardi tehtavien ajastin Unix- ja Linux-kayttojarjestelmissa. Se suorittaa komentoja tai skripteja maaariteltyina aikoina ja valeilla tehden siita valttamattoman jarjestelman yllaapidolle, DevOps-automaatiolle ja taustasovellusten ajastukselle. Nimi tulee kreikan sanasta chronos, joka tarkoittaa aikaa.

Cron-lauseke on tiivis viiden kentan merkkijono, joka maarittaa, milloin tehtava suoritetaan. Jokainen kentta maarittaa aikakomponentin — minuutti, tunti, kuukauden paiva, kuukausi ja viikonpaiva. Yhdessa nama viisi kenttaa voivat ilmaista aikatauluja 'joka minuutti' -taajuudesta 'kerran vuodessa tiettyna paeivana'.

Cron-syntaksi selitettyna

Jokainen viidesta kentasta hyvaksyy tiettyjaa arvoja ja erikoismerkkeja. Tähti (*) tarkoittaa 'jokaista mahdollista arvoa'. Numero asettaa tietyn arvon. Tavuviiva (1-5) maarittaa alueen. Pilkku (1,3,5) luo luettelon. Kauttaviiva (*/5) asettaa askelvaalin. Naiden operaattoreiden yhdistaminen mahdollistaa kaytannossa minka tahansa aikataulun rakentamisen.

Kenttaviite

  • Minuutti (0–59): Tunnin minuutti, jolloin tehtava suoritetaan.
  • Tunti (0–23): Vuorokauden tunti 24 tunnin muodossa. 0 on keskiyo, 12 on keskipaiiva.
  • Kuukauden paiva (1–31): Kalenteripaiva. Jokaisessa kuukaudessa ei ole 31 paivaa — cron ohittaa virheelliset paivamaarat automaattisesti.
  • Kuukausi (1–12): Kalenterikuukausi. 1 on tammikuu, 12 on joulukuu.
  • Viikonpaiva (0–6): Viikonpaiva. 0 on sunnuntai, 6 on lauantai. Jotkut jarjestelmat hyvaksyvat myos 7 sunnuntaiksi.

Yleiset cron-lausekkeet

  • 0 0 * * * — 0 0 * * * — Joka paiva keskiyolla.
  • 0 9 * * 1-5 — 0 9 * * 1-5 — Arkipaiviina klo 9:00.
  • 0 0 1 * * — 0 0 1 * * — Jokaisen kuukauden ensimmaisena paivana keskiyolla.
  • */15 * * * * — */15 * * * * — Joka 15. minuutti.
  • 0 */4 * * * — 0 */4 * * * — Joka 4. tunti tasatunnein.

Yleiset cron-virheet

Yleisin virhe on kenttien asettaminen vaaraan jarjestykseen. Cron lukee aina minuutin ensin, sitten tunnin — joten '0 9' tarkoittaa klo 9:00, ei minuuttia 9. Toinen sudenkuoppa on unohtaa, etta palvelimen aikavyohyke maaraa cronin suoritusajan. Jos palvelimesi on UTC:ssa mutta odotat paikallista aikaa, tehtavat laukaistaan vaaraan aikaan.

Valta raskaiden tehtavien aikatauluttamista tasan keskiyolla (0 0 * * *), koska monet muut cron-tehtavat suoritetaan samaan aikaan. Porrastuta tehtavasi muutamalla minuutilla kuormituspiikkien estamiseksi. Varo myos tehtavia, joiden suorittaminen kestaa kauemmin kuin niiden vali — jos tehtava suoritetaan joka minuutti mutta kestaa 3 minuuttia, sinulla on paallekkaisia instansseja.

Parhaat kaytannot

Ohjaa cronin tuloste aina lokitiedostoon (>> /var/log/myjob.log 2>&1), jotta voit selvittaa virheita. Kayta absoluuttisia polkuja komennoille ja skripteille, koska cron suorittaa minimaalisella PATH-ymparistolla. Testaa lausekkeesi taman kaltaisella tyokalulla ennen tuotantoon vientia.

Monimutkaisiin ajoitustarpeisiin harkitse cron-vaihtoehtoja kuten systemd-ajastimet (Linux), Celery Beat (Python) tai pilviajastimet (AWS EventBridge, Google Cloud Scheduler). Nama tarjoavat ominaisuuksia kuten uudelleenyrityslogiikan, seurantakojelaaudat ja hajautetun suorituksen, joita standardicroni puuttuu.

Usein kysytyt kysymykset

Voiko cron suorittaa tehtavan joka 30. sekunti?

Ei. Cronin minimiresoluutio on yksi minuutti. Tehtavan suorittamiseksi joka 30. sekunti aikatauluta se joka minuutti ja lisaa 30 sekunnin viive toiselle suoritukselle samassa skriptissa. Vaihtoehtoisesti kayta systemd-ajastinta tai kielikohtaista ajastinta alle minuutin valeille.

Missa crontab-tiedosto sijaitsee?

Kayttajien crontabit tallennetaan hakemistoon /var/spool/cron/ (Red Hat/CentOS) tai /var/spool/cron/crontabs/ (Debian/Ubuntu). Muokkaa omaasi komennolla 'crontab -e' suoran tiedostomuokkauksen sijaan. Jarjestelman crontab on osoitteessa /etc/crontab ja lisatehtavia voi sijoittaa hakemistoon /etc/cron.d/.