Samenvatting
Deze cron-expressiegenerator bouwt en controleert standaard cron-schema's met vijf velden direct in je browser. Kies een voorinstelling of pas minuut, uur, dag van de maand, maand en dag van de week aan. De tool legt het schema uit in gewone taal, toont elk veld apart en geeft de volgende vijf uitvoeringstijden in UTC of in je eigen tijdzone. Het volgt de standaardregel voor het combineren van dag van de maand en dag van de week. Er wordt niets naar een server gestuurd en je hebt geen account nodig.
Cron expressie generator: schema's bouwen en bekijken in seconden
Deze cron expressie generator laat je een voorinstelling kiezen of de vijf velden typen. Je krijgt een uitleg in gewone taal, een uitsplitsing per veld en de volgende vijf uitvoeringstijden, allemaal lokaal berekend.
Wat de tool doet met je vijf velden
Elk veld wordt apart ontleed
Elk veld accepteert een enkele waarde, een lijst (1,15), een bereik (1-5), een stap (*/10) of een combinatie. Namen van maanden en weekdagen zoals JAN of MON-FRI werken ook. Waarden buiten het bereik en omgekeerde bereiken worden gemarkeerd op het precieze veld dat fout is.
Er wordt de echte cron-matchingregel toegepast
Een tijdstip past als minuut, uur en maand in je lijsten staan en de dagtest slaagt. Als dag van de maand en dag van de week allebei beperkt zijn, accepteert cron er een van beide. Begint een van de twee met een sterretje, dan moeten beide kloppen.
Er wordt door de kalender gelopen om toekomstige uitvoeringen te tonen
Vanaf de huidige minuut loopt het script door de dagen, houdt de dagen die de dagtest halen en somt daarna de passende uren en minuten op in volgorde. Het kijkt tot acht jaar vooruit, genoeg om een schema op 29 februari te vinden.
De vijf velden, in de volgorde waarin cron ze leest
Een cron-regel bestaat uit vijf velden gescheiden door spaties, gevolgd door het commando. De volgorde verandert nooit: minuut, uur, dag van de maand, maand, dag van de week. De meeste fouten ontstaan doordat de eerste twee worden verwisseld, waardoor een schema bedoeld voor 2 uur 's middags draait op minuut 14 van elk uur. Lees van links naar rechts en zeg de velden hardop voordat je ze opslaat.
- Minuut: 0-59
- Uur: 0-23, op een 24-uursklok
- Dag van de maand: 1-31
- Maand: 1-12 of JAN-DEC
- Dag van de week: 0-7 of SUN-SAT, waarbij 0 en 7 allebei zondag zijn
- Symbolen: * voor elke waarde, , voor een lijst, - voor een bereik, / voor een stap
Cron-valkuilen die mensen een weekend kosten
De omgeving is bijna leeg
Cron start taken met een minimale PATH en zonder shellprofiel. Een script dat in je terminal werkt, kan stilletjes falen vanuit cron. Gebruik absolute paden voor het commando en voor elk bestand dat het leest, en stuur de uitvoer naar een logbestand zodat je fouten kunt zien.
Een procentteken beëindigt je commando
In een crontab-regel wordt een % zonder backslash behandeld als een nieuwe regel, en alles erna wordt als invoer naar het commando gestuurd. Datumformaten zoals date +%F hebben elk procentteken nodig met een backslash ervoor. Zet het commando in een script en het probleem is weg.
Elke minuut is zelden wat je wilt
Een taak die elke minuut draait en 90 seconden duurt, overlapt zichzelf. Beveilig lange taken met een lock of verplaats ze naar een wachtrij. Als je iets maar om de paar minuten nodig hebt, is een stap zoals */5 zachter en minder belastend voor wat de taak aanroept.
Tijdzones zijn niet van jou
Een crontab gebruikt de tijdzone van de server. Gehoste schedulers gebruiken meestal UTC. Een taak ingesteld op 09:00 kan om 17:00 in Taipei of om 04:00 in Bangkok afgaan, afhankelijk van waar de machine staat. Zet de tijdzone in een commentaar naast de regel.
Weekdag en dag van de maand worden gecombineerd als OF
Beide velden beperken maakt het schema niet smaller, maar breder. Wil je de eerste maandag van de maand, dan kan geen enkele expressie met vijf velden dat direct zeggen. Laat de taak elke maandag draaien en laat het script controleren of de datum 7 of lager is.
Test het schema voordat je de taak draait
Controleer hier eerst de volgende vijf uitvoeringen, en draai daarna het commando met de hand in dezelfde omgeving. Twee kleine controles verslaan het debuggen van een nachtelijke back-up die nooit draaide. Begin met een onschadelijk commando, zoals de datum naar een bestand schrijven.
Vragen over cron-expressies
Is deze cron-expressiegenerator gratis, en stuurt hij mijn schema ergens naartoe?
Hoeveel velden heeft een cron-expressie?
Waarom draait mijn taak op dagen die ik niet verwachtte als ik zowel dag van de maand als dag van de week instel?
Welke tijdzone gebruiken de volgende uitvoeringstijden?
Werkt dezelfde expressie in GitHub Actions, Kubernetes en crontab?
Wat betekent een stap zoals */15 of 10/20?
Kan ik namen gebruiken zoals MON-FRI of JAN?
Wat gebeurt er bij de overgang naar zomertijd?
Op zoek naar het volgende ding om te bouwen?
Een cron-taak is een goede eerste backend voor een side project. De gratis generator op onze homepage geeft je met één klik een volledige projectspec, met stack en scope.