Cron Explainer
Valideer en leg schema's uit15 2 * * 1-5Om 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.