OTOthoTools

Cron Explainer

Valideer en leg schema's uit
15 2 * * 1-5

Om minuut 15, uur 2, dag-van-maand *, maand *, dag-van-week 1-5.

Educatieve defensieve richtlijn. Beoordeel elk resultaat vóór gebruik in productie.

Inleiding

De Cron Explainer valideert een standaard cron-expressie met vijf velden — minuut, uur, dag-van-maand, maand, dag-van-week — en legt uit wat die in gewone taal betekent.

Cron-syntax is compact en makkelijk verkeerd te lezen: 0 2 * * 1-5 en 0 2 * * 1,5 betekenen heel verschillende dingen. Een tweede paar ogen op het schema voorkomt zowel gemiste taken als verrassingen om 2 uur 's nachts.

Doel

  • Valideer dat een expressie precies vijf geldige velden heeft.
  • Vertaal de velden naar een leesbare zin.
  • Bied gangbare presets als startpunt.

Invoerwaarden

  • Een cron-expressie met vijf velden, bijvoorbeeld 15 2 * * 1-5.
  • Velden: minuut (0–59), uur (0–23), dag-van-maand (1–31), maand (1–12), dag-van-week (0–7, waarbij 0 en 7 zondag zijn).

Hoe het werkt

De expressie wordt op spaties gesplitst. Hij moet precies vijf velden opleveren, en elk veld mag alleen bestaan uit cijfers en de operatoren * / , -.

Het hulpmiddel controleert numerieke bereiken niet diep (99 als uur doorstaat bijvoorbeeld de tekencontrole) — de uitleg is eerlijk over de structuur van vijf velden.

Een geldige expressie levert een zin op die elk veld letterlijk leest; een ongeldige levert een duidelijke foutmelding op die om precies vijf velden vraagt.

Testbaar voorbeeld

Probeer het — de analyse draait lokaal in uw browser.

Voorbeeld

Expressie: 15 2 * * 1-5

Verwachte uitvoer

Geldig.
Om minuut 15, uur 2, dag-van-maand *, maand *, dag-van-week 1-5.
Interpretatie: doordeweeks om 02:15.

De uitvoer lezen

  • Als de uitleg overeenkomt met wat u bedoelde, is het schema waarschijnlijk juist.
  • Let op de klassieke valkuil: dag-van-maand en dag-van-week worden in standaard cron (Vixie) met OR gecombineerd, dus een expressie met beide beperkt kan vaker draaien dan verwacht.
  • Presets (elk uur, dagelijks, wekelijks, elke 5 minuten) zijn veilige startpunten.

Risico's

  • Een typfout in het minuut- of uurveld verschuift een heel schema — 30 2 * * * draait bijvoorbeeld om 02:30, niet om 02:00.
  • Het gebruik van zowel dag-van-maand als dag-van-week creëert OR-semantiek die de meeste mensen verrast.
  • Taken die draaien wanneer het systeem slaapt of uit is, worden afhankelijk van de cron-implementatie overgeslagen of uitgesteld — anacron en systemd-timers gedragen zich anders.

Beperkingen

  • Het hulpmiddel accepteert alleen het standaardformaat met vijf velden; het parseert geen Vixie-extensies zoals @reboot of de variant met zes velden (seconden).
  • Bereikcontrole is bewust ondiep: 99 in het uurveld doorstaat de tekencontrole.
  • Het legt de expressie uit; het kan niet verifiëren dat de onderliggende opdracht bestaat of de juiste rechten heeft.

Officiële referenties

FAQ

Wat accepteert het dag-van-week-veld?

0–7, waarbij 0 en 7 zondag zijn. Namen zoals MON worden door deze validator niet geaccepteerd — houd het bij getallen, bereiken en lijsten.

Waarom draait mijn taak vaker dan ik verwachtte?

Als zowel dag-van-maand als dag-van-week beperkt zijn, draait Vixie-cron de taak wanneer een van beide overeenkomt. Gebruik * in een van de twee velden om het intuïtieve AND-gedrag te krijgen.

Moet ik cron of systemd-timers gebruiken?

Voor nieuw werk bieden systemd-timers betere logging, afhankelijkheden en afhandeling van gemiste runs. Cron blijft prima voor eenvoudige, goed begrepen schema's.