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.

Gratis cron-tool

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.

Cron expressie generator

Begin met een voorinstelling of bewerk een van de vijf velden. De expressie, de betekenis en de volgende vijf uitvoeringstijden worden bijgewerkt terwijl je typt.

0-59
0-23
1-31
1-12 of JAN-DEC
0-7 of SUN-SAT
0 9 * * *

Veld voor veld

    Volgende 5 uitvoeringen

      crontab-regel

      Hoe het werkt

      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.

      Syntaxis

      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
      Serverrek met groene en cyaan statuslampjes in een donkere ruimte
      Dit gaat in de praktijk mis

      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?
      Hij is gratis, vereist geen account en draait volledig in je browser. De expressie die je typt, wordt lokaal ontleed door een klein script op deze pagina. Er wordt niets geüpload. De enige netwerkaanroep is een anonieme teller die bijhoudt dat iemand de tool heeft gebruikt.
      Hoeveel velden heeft een cron-expressie?
      Vijf in standaard Unix-cron: minuut, uur, dag van de maand, maand, dag van de week, in die volgorde. Sommige schedulers voegen een zesde veld toe. Quartz zet seconden vooraan, en AWS EventBridge voegt een jaarveld toe en gebruikt een vraagteken. Deze tool ondersteunt alleen het formaat met vijf velden, dus plak het resultaat in een van die systemen en controleer de documentatie voor het extra veld.
      Waarom draait mijn taak op dagen die ik niet verwachtte als ik zowel dag van de maand als dag van de week instel?
      Omdat standaard cron de twee velden als OF behandelt wanneer beide beperkt zijn. De expressie 0 0 13 * 5 gaat af op elke 13e en op elke vrijdag, niet alleen op vrijdag de 13e. Als een van de twee velden een gewoon sterretje is of ermee begint, wordt de controle in plaats daarvan een EN. De lijst met voorbeelden hierboven past die regel toe, zodat je de echte datums kunt zien voordat je uitrolt.
      Welke tijdzone gebruiken de volgende uitvoeringstijden?
      Dat kies je zelf. UTC is de standaard, omdat de meeste cloudschedulers cron in UTC draaien. De tweede optie gebruikt de tijdzone van je browser. Je eigen server kan er een derde gebruiken, dus controleer de tijdzone-instelling van de machine of de documentatie van de scheduler voordat je de kloktijden vertrouwt.
      Werkt dezelfde expressie in GitHub Actions, Kubernetes en crontab?
      De vijf velden betekenen in alle drie hetzelfde. GitHub Actions evalueert schema's in UTC, en het kortste toegestane interval is elke 5 minuten. Een Kubernetes CronJob gebruikt dezelfde vijf velden en laat je op nieuwere versies een tijdzone instellen. Een klassieke crontab gebruikt de tijdzone van de machine. Speciale strings zoals @daily worden door veel crontab-implementaties geaccepteerd maar niet door elke scheduler, dus kies bij twijfel voor het formaat met vijf velden.
      Wat betekent een stap zoals */15 of 10/20?
      Een stap kiest elke n-de waarde binnen een bereik. In het minuutveld betekent */15 0, 15, 30 en 45. Een startwaarde gevolgd door een stap, zoals 10/20, loopt van die waarde tot het einde van het veld: minuten 10, 30 en 50. Een bereik met een stap, zoals 8-18/2 in het uurveld, betekent 8, 10, 12, 14, 16 en 18.
      Kan ik namen gebruiken zoals MON-FRI of JAN?
      Ja. De velden voor maand en dag van de week accepteren Engelse namen van drie letters, ongeacht de hoofdletters. Getallen werken ook: maanden lopen van 1 tot 12, en dagen van de week van 0 tot 7, waarbij zowel 0 als 7 zondag betekent.
      Wat gebeurt er bij de overgang naar zomertijd?
      Dat hangt af van de scheduler. Wanneer de klok vooruitspringt, kan een taak die binnen het overgeslagen uur staat, worden overgeslagen of te laat draaien. Wanneer de klok teruggaat, kan een taak die binnen het herhaalde uur staat, twee keer draaien. Als een taak precies één keer per dag moet draaien, plan hem dan in UTC of op een tijdstip dat niet dicht bij de overgang ligt.

      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.