Cron-uttrycksgenerator

0-59

0-23

1-31

1-12

0-7 (0,7=sön)

Nästa

Cron-syntaxen är koncis och lätt att missförstå: 0 */6 * * * körs var sjätte timme, medan */6 0 * * * körs tio gånger, bara under den första timmen efter midnatt. Med denna generator väljer du ett schema visuellt (var 15:e minut, på vardagar klockan 9, den 1:a i varje månad) och får det exakta uttrycket tillsammans med en lättförståelig beskrivning av vad det betyder.

Hur du skapar ett Cron-uttryck

  1. 1

    Välj en förinställning eller fyll i fälten

    Varje minut, varje timme, dagligen vid midnatt, veckovis på söndagar och den 1:a i varje månad är ett klick bort. För allt annat skriver du in värdena direkt i de fem fälten.

  2. 2

    Förbättra schemat

    Specifika minuter, timmar, dagar i månaden, månader och dagar i veckan. Både intervall (9–17), listor (1, 15) och steg (*/6) stöds.

  3. 3

    Läs av uttrycket

    Generatorn ger alltid standardformatet med 5 cron-fält, tillsammans med en lättförståelig beskrivning av schemat.

  4. 4

    Kontrollera dialekten

    Dialekterna skiljer sig (Quartz, AWS EventBridge, Kubernetes). Bekräfta att uttrycket matchar vad din schemaläggare förväntar sig.

De fem fälten

*  *  *  *  *
│  │  │  │  │
│  │  │  │  └── Veckodag (0-6, söndag=0, eller SUN-SAT)
│  │  │  └───── Månad (1-12, eller JAN-DEC)
│  │  └──────── Dag i månaden (1-31)
│  └─────────── Timme (0-23)
└────────────── Minut (0-59)

Varje fält accepterar:

  • Ett specifikt tal: 5
  • En lista: 1,15,30
  • Ett intervall: 9-17
  • Ett steg: */10 (var tionde) eller 0-30/5 (var femte från 0 till 30)
  • Jokertecken: * (alla värden)

Vanliga uttryck

Schema Cron-uttryck
Varje minut * * * * *
Var 15:e minut */15 * * * *
Varje timme prick 0 * * * *
Var sjätte timme 0 */6 * * *
Varje dag klockan 02:30 30 2 * * *
Varje vardag klockan 9:00 0 9 * * 1-5
Varje måndag klockan 8:00 0 8 * * 1
Första dagen varje månad, klockan 03:00 0 3 1 * *
Var 15:e minut, vardagar 9-17 */15 9-17 * * 1-5
Klockan 12 den 1:a och den 15:e 0 12 1,15 * *
Varje söndag vid midnatt 0 0 * * 0

Fällan med dag i månaden + veckodag

I standard-cron gäller att om både dag i månaden och veckodag anges (inte *), körs jobbet när endera matchar (OR, inte AND). 0 0 1 * MON körs den 1:a varje månad och varje måndag, inte bara när den 1:a infaller på en måndag.

Vixie cron och de flesta Linux-distributioner följer denna OR-regel. Quartz (Java) och vissa andra använder AND. Om du är osäker, testa uttrycket med en torrkörning eller ett testjobb i din schemaläggare.

Dialektskillnader

  • Standard-cron (Linux): 5 fält, veckodag 0–6 (söndag = 0 eller 7).
  • Quartz (Spring, Java-appar): 6–7 fält, där sekunderna är fält 1 och år är valfritt. Veckodag 1–7 (söndag = 1).
  • AWS EventBridge cron: 6 fält, inklusive år. Dag i veckan och dag i månaden måste vara ömsesidigt uteslutande (en av dem måste vara ?).
  • GitHub Actions: standard med fem fält, minsta intervall 5 minuter, endast för UTC-tidpunkter
  • Kubernetes Cronjob: standard med fem fält, UTC som standard

Kolla alltid vilken dialekt din schemaläggare använder.

Tidzoner

Klassiska kronjobb körs i serverns lokala tidszon. Det kan vara problematiskt vid övergångar till eller från DST: ett jobb som startas klockan 02:30 kan köras två gånger eller inte alls på dessa dagar. Moderna schemaläggningsverktyg (systemd timers, Kubernetes, EventBridge) gör det möjligt att ange tidszon explicit – använd UTC om inte du har en god anledning att undvika det.

Vanliga frågor

Var femte enhet i fältet, med start från 0. I minutfältet körs */5 vid minut 0, 5, 10, 15, …, 55. Det är en förkortning för 0,5,10,15,20,25,30,35,40,45,50,55.

Cron kan inte uttrycka godtyckliga intervall som inte går jämnt upp i 60 minuter eller 24 timmar. För 90 minuter anger du de specifika körtiderna: 0 0,9 * * * tillsammans med ytterligare rader, eller byter till en schemaläggare som stöder godtyckliga intervall (systemd timers, anacron).

Midnatt. Fältordningen är minut-timme, så 0 0 betyder “minut 0 i timme 0”. Klockan 12 på dagen skulle vara 0 12 * * *.

Standard-cron hoppar över den – missade körningar försöks inte igen. Anacron tar igen missade dagliga, veckovisa eller månadsvisa jobb vid nästa uppstart. Kubernetes CronJobs har startingDeadlineSeconds och concurrencyPolicy för att uttryckligen hantera missade körfönster.

Relaterade verktyg