Cron-uttrykksforklarer
Lim inn et cron-uttrykk og få en forklaring på klartekst. Støtter standard 5-felts og 6-felts (med sekunder) cron-formater.
Eksempler (klikk for å prøve)
0 0 * * *— daglig ved midnatt*/5 * * * *— hvert 5. minutt0 9 * * MON-FRI— ukedagsmorgen kl. 09:000 0 1 * *— første i hver måned ved midnatt0 0 * * 0— hver søndag ved midnatt15 2 * * *— daglig kl. 02:150 */6 * * *— hver 6. time30 3 1-7 * 1— første mandag i måneden kl. 03:30
- Skriv eller lim inn et cron-uttrykk i inputfeltet over.
- Les klartekstforklaringen som vises under.
- Klikk på en eksempelchip for å legge den inn og se den dekodet.
- Fiks enhver parsefeil som vises i rødt, og iterer til forklaringen matcher intensjonen din.
Hva gjør det?
Forklareren tar et standard Unix cron-uttrykk (5 felter) eller et Quartz-stil-uttrykk med sekunder (6 felter) og returnerer en menneskelig beskrivelse som "At 09:00 AM, Monday through Friday." Den støtter de vanlige operatorene — *, ",", - og / — sammen med navngitte måneder (JAN-DEC) og navngitte ukedager (SUN-SAT). Resultatet oppdateres ved hvert tastetrykk, så du kan iterere på et uttrykk raskt.
Eksempel
En vanlig jobb innenfor kontortid:
0 9 * * MON-FRI Dekodet:
At 09:00 AM, Monday through Friday Et mer spesifikt 6-felts Quartz-uttrykk med sekunder:
0 30 2 ? * MON Dekodet (hver mandag kl. 02:30:00).
Cron-format
┌───────── minutt (0 - 59) │ ┌─────── time (0 - 23) │ │ ┌───── dag i måneden (1 - 31) │ │ │ ┌─── måned (1 - 12, eller JAN-DEC) │ │ │ │ ┌─ ukedag (0 - 6, eller SUN-SAT; både 0 og 7 betyr søndag) │ │ │ │ │ * * * * *
Hvorfor fyrer cron "0 0 * * *" ved midnatt UTC og ikke lokal tid?
De fleste reelle cron-feil havner i en håndfull gjentatte feller:
- Tidssonedrift. 0 0 * * * fyrer ved midnatt i planleggerens tidssone. På Kubernetes CronJobs og GitHub Actions er standard UTC — sett spec.timeZone eller konverter timen til UTC selv.
- 5-felts vs 6-felts-mismatch. Å lime inn 0 0 9 * * MON-FRI (6 felter) i en 5-felts-planlegger leser den ledende 0 som minutt og 0 som time, så jobben fyrer ved midnatt, ikke kl. 09:00.
- Dag-i-måneden og ukedag sammen. 0 0 15 * MON kjører på den 15. og hver mandag — ikke bare på en mandag som faller på den 15. Dette er Vixie-crons ELLER-semantikk.
- Step starter ikke på nytt ved deploy. */10 * * * * fyrer ved :00, :10, :20, :30, :40, :50 på klokken — ikke ti minutter etter siste deploy.
- Bruker ? i standard cron. ?-plassholderen er en Quartz-utvidelse. Unix cron avviser den — bruk * i stedet.
- Ukedag 0 vs 7. Begge betyr søndag i klassisk cron, men noen parsere (gammel BSD) godtar kun 0. Hvis portabilitet betyr noe, bruk SUN.
Operatorer
*— enhver verdi,— liste over verdier (f.eks. MON,WED,FRI)-— område (f.eks. 1-5)/— stegverdier (f.eks. */15 = hvert 15.)
Ofte stilte spørsmål
Hva er forskjellen mellom 5-felts og 6-felts cron?
Standard POSIX cron har 5 felter: minutt, time, dag-i-måneden, måned, ukedag. 6-felts-varianten legger til et sekundfelt foran og brukes av Quartz, Spring @Scheduled og mange Node cron-biblioteker. Et 6-felts-uttrykk som "0 0 9 * * MON-FRI" fyrer kl. 9:00:00 på ukedager, mens 5-felts "0 9 * * MON-FRI" fyrer kl. 9:00.
Støtter dette Quartz-utvidelser som L, W og #?
Denne forklareren støtter den vanlige Unix / Vixie cron-dialekten pluss det valgfrie ledende sekundfeltet. Kun-Quartz-tokens (L for siste, W for ukedag, # for n-te ukedag og ?-plassholderen) er ikke del av standard cron og er ikke garantert å parse. Hvis du er avhengig av dem, bruk planleggerspesifikk dokumentasjon for å verifisere uttrykket.
Hvorfor fyrer 0 0 * * * på et annet tidspunkt enn jeg forventer?
Cron-uttrykk har ingen tidssone. Jobben kjører ved midnatt i tidssonen til maskinen eller containeren som eier planleggeren. På Kubernetes CronJobs, GitHub Actions og AWS EventBridge er standard UTC. Hvis du vil ha lokal midnatt, sett planleggerens tidssone eksplisitt (spec.timeZone på CronJob, TZ miljøvariabel, cron.yaml timezone-nøkkel).
Kan jeg kombinere dag-i-måneden og ukedag?
I standard Vixie cron, hvis både dag-i-måneden og ukedag er begrenset, fyrer jobben når en av dem matcher — det er en ELLER, ikke en OG. Så "0 0 15 * MON" kjører på den 15. i hver måned og hver mandag. Quartz inverterer dette og behandler ett felt som påkrevd til å være "?" for å unngå tvetydighet.
Hvordan fungerer stegverdier?
Et steg bruker syntaksen område/steg. "*/15 * * * *" fyrer hvert 15. minutt med start :00. "10-50/20" inne i minuttfeltet fyrer ved :10, :30, :50. Steg betyr ikke "hvert N fra nå" — grensene er alltid justert til starten av området, så ikke forvent at et steg driver med gjeldende tid.
Lagrer dere cron-uttrykkene jeg tester her?
Nei. Vi beholder ingen oppføring av uttrykkene du skriver. Det du limer inn eller eksperimenterer med forkastes når du lukker eller oppdaterer siden — ingen logger, ingen analyse av tidsplanene du jobber med. Du kan sjekke nettleserens utviklerverktøy hvis du vil ha ekstra trygghet.