Cron expression generator: bouwen, uitleggen, volgende runs | We.Inc
Bouw een cron-schema met keuzelijsten of plak er een om het in gewone taal te lezen. Zie de volgende 10 runs in uw tijdzone en kopieer het voor crontab, GitHub Actions, Vercel of Kubernetes.
Cron expression generator
Een cron-expressie bestaat uit vijf velden gescheiden door spaties: minuut, uur, dag van de maand, maand en dag van de week. */5 * * * * draait elke vijf minuten; 0 9 * * 1-5 draait om 9:00 op werkdagen. Bouw er een met de keuzelijsten of plak uw eigen expressie om de uitleg en de volgende tien runtijden te zien.
De vijf velden, op volgorde
Veld
Toegestane waarden
Minuut
Uur
Dag van de maand
Maand
1-12 of JAN-DEC
Dag van de week
0-7 of SUN-SAT (0 en 7 zijn zondag)
Kies waarden per veld of plak een expressie. De tool legt het uit in gewone taal, wijst fouten aan, toont de volgende tien runs in elke tijdzone en geeft u hetzelfde schema klaar voor crontab, GitHub Actions, Vercel en Kubernetes.
Typ of plak een expressie in het vak, of klik op een van de voorinstellingen. Snelkoppelingen zoals @daily en @weekly werken ook.
Of gebruik de bouwer: elk van de vijf velden heeft de keuze uit elke, elke N, specifieke waarden of een bereik. De expressie wordt bijgewerkt terwijl u kiest.
Lees de regel in gewone taal om te controleren of het schema zegt wat u bedoelde. Fouten, zoals minuut 61 of een ontbrekend veld, worden benoemd.
Kies een tijdzone om de volgende tien runs te zien zoals ze daar zouden plaatsvinden, inclusief wijzigingen door zomertijd.
Kopieer het schema in het formaat dat uw platform verwacht. Alles draait in uw browser.
De meeste gehoste planners, waaronder GitHub Actions en Vercel cron jobs, lezen het schema in UTC. Reken uw lokale tijd om voordat u opslaat, anders draait de job uren te vroeg of te laat.
Vult u zowel het veld dag van de maand als dag van de week in, dan draait cron de job wanneer een van beide overeenkomt, niet wanneer beide overeenkomen. 0 0 13 * 5 draait op elke 13e en op elke vrijdag, niet alleen op vrijdag de 13e.
Kies een oneven minuut zoals 17 3 * * * in plaats van 0 0 * * *. Heel veel jobs staan op het hele uur, dus gedeelde diensten en gehoste runners zijn dan het drukst.
Jobs die tussen 01:00 en 03:00 lokale tijd staan gepland, kunnen worden overgeslagen of twee keer draaien als de klok verzet wordt. Plan kritieke jobs in UTC of buiten dat venster.
GitHub Actions draait schema's niet vaker dan elke 5 minuten en kan ze laat starten als de runners druk zijn, dus vertrouw daar niet op exacte timing.
Veelgestelde vragen
Hoe schrijf ik een cron job die elke 5 minuten draait?
Gebruik */5 * * * *. De */5 in het minuutveld betekent elke vijfde minuut vanaf 0, dus hij draait om :00, :05, :10 enzovoort. Voor elke 10 of 15 minuten verandert u het getal in 10 of 15.
Wat betekent */ in cron?
De schuine streep stelt een stap in. */15 in het minuutveld betekent elke 15e minuut van het uur: 0, 15, 30 en 45. U kunt ook door een bereik stappen: 9-17/2 in het uurveld betekent 9, 11, 13, 15 en 17.
Is zondag 0 of 7 in cron?
Beide. Standaard cron accepteert 0 en 7 voor zondag, en daarna 1 voor maandag tot en met 6 voor zaterdag. Dagnamen zoals SUN en MON voorkomen de vraag helemaal.
Waarom heeft mijn expressie zes of zeven velden?
Quartz, Spring en sommige cloudplanners voegen aan het begin een veld voor seconden toe en soms een jaar aan het eind. Standaard crontab, GitHub Actions, Vercel en Kubernetes gebruiken vijf velden. Deze tool leest de vorm met vijf velden; laat het secondenveld weg om de rest te controleren.
Welke tijdzone gebruikt cron?
Een crontab gebruikt de tijdzone van de server waarop hij draait, tenzij het systeem een CRON_TZ- of TZ-instelling ondersteunt. GitHub Actions en Vercel gebruiken UTC. Kubernetes CronJobs gebruiken de tijdzone van de controller, tenzij u het veld timeZone in de spec instelt.
Een cron-expressie lezen
Lees de velden van links naar rechts: op deze minuut, van dit uur, op deze dag van de maand, in deze maand, op deze dag van de week. Een ster betekent elke waarde. Dus 30 6 * * 1 leest als: op minuut 30 van uur 6, op elke dag van de maand, in elke maand, op maandag. Dat is elke maandag om 06:30.
Elk veld kan één waarde bevatten, een lijst (1,15), een bereik (1-5), een stap (*/10) of een mix (0-30/10,45). De bouwer op deze pagina schrijft deze voor u, en de beschrijvingsregel leest het resultaat terug zodat u het kunt controleren.
De valkuil van dag van de maand en dag van de week
Als beide dagvelden een andere waarde dan een ster hebben, behandelt cron ze als alternatieven. Een job ingesteld op 0 0 1 * 1 draait op de eerste van de maand en op elke maandag. Dat verrast veel mensen die de eerste maandag van de maand verwachtten.
Cron kan de eerste maandag niet direct uitdrukken. De gebruikelijke omweg is 0 0 1-7 * * plannen en het script laten stoppen tenzij het maandag is, of een planner gebruiken met een eigen syntax daarvoor.
Waar uw schema gaat draaien
Elk platform hieronder gebruikt dezelfde vijf velden, maar verpakt ze anders en sommige voegen eigen regels toe. Kopieer het fragment voor uw platform uit de tool en controleer daarna in de documentatie hoe vaak jobs op uw abonnement mogen draaien.
Elke 5 minuten
Elke 15 minuten
Elk uur, op het hele uur
Elke 6 uur
Elke dag om middernacht
Werkdagen om 9:00
Vrijdagen om 17:30
Zondagen om 3:00
Eerste dag van elke maand
Eerste dag van elk kwartaal om 8:00
Elke 10 minuten tijdens kantooruren
Eén keer per jaar, 1 januari
Wat elk teken in een cron-veld betekent
Symbool
Betekenis
Voorbeeld
Leest als
Elke waarde
* in het uurveld
Elk uur
Een lijst met waarden
1,15 in het dagveld
Op de 1e en de 15e
Een bereik
1-5 in het weekdagveld
Maandag tot en met vrijdag
Een stap door een bereik
*/10 in het minuutveld
Minuten 0, 10, 20, 30, 40, 50
JAN-DEC
Maandnamen (hoofdletters of kleine letters)
Juni tot en met augustus
SUN-SAT
Dagnamen; 0 en 7 zijn allebei zondag
sat,sun
Weekenden
@daily
Snelkoppeling voor 0 0 * * *
@hourly, @weekly, @monthly, @yearly
Hetzelfde als de vorm met vijf velden
Minuut
Uur
Dag van de maand
Maand
Dag van de week
jan
mrt
apr
mei
jun
jul
aug
sep
okt
nov
zo
ma
di
wo
do
vr
za
Modus {field}
Elke
Elke N
Specifiek
Bereik
Stap {field}
Waarden {field}, gescheiden door komma's
{field} vanaf
{field} tot
Uw schema
Cron-expressie
Expressie kopiëren
Bouw het veld voor veld
Als u hieronder een veld wijzigt, wordt de expressie hierboven vervangen.
Volgende 10 runs
Tijdzone
Uw klok wordt geladen…
Geen run in de komende vijf jaar. Controleer de velden voor dag en maand, bijvoorbeeld 31 in een maand met 30 dagen.
Herstel de expressie om de runtijden te zien.
Draait met minder dan 5 minuten ertussen. GitHub Actions plant niet zo vaak in.
Kopiëren voor uw platform
Fragment kopiëren
Voeg de regel toe met crontab -e. Hij draait in de tijdzone van de server; vervang het commando door uw eigen commando.
Hoort in een workflowbestand onder .github/workflows. GitHub leest het schema in UTC.
Vercel leest het schema in UTC en roept het opgegeven pad aan met een GET-verzoek.
Het veld timeZone bepaalt in welke zone het schema wordt gelezen. Vervang de image en het commando door uw job.