Hoppa till huvudinnehåll
LibraTool logoLibraTool

Gratis Cron-uttrycksbyggare

Bygg, validera och förklara cron-uttryck för schemalagda uppgifter. Live klarspråksbeskrivning, förhandsvisning av de 5 nästa körningarna och vanliga mönsterförinställningar.

Fungerar offline när den väl lästs in
minut
(0-59)
timme
(0-23)
dag
(1-31)
månad
(1-12)
veckodag
(0-7)

På klartext

Vid 09:00, Måndag till fredag.

Vanliga mönster

Kompatibel med standard Unix cron, GitHub Actions, Kubernetes CronJob och de flesta schemaläggningssystem. Använd * för 'varje', */5 för 'var 5', 1-5 för intervall, 1,15 för specifika värden. Accepterar även @hourly, @daily, @weekly, @monthly, @yearly, och namn som MON-FRI eller JAN-DEC.

Vanliga användningar

  • Bygg Cron för GitHub Actions-arbetsflödenGitHub Actions använder cron-syntax för schemalagda arbetsflöden. Bygg och verifiera ditt schema här.
  • Bygg Cron för Kubernetes CronJobsKubernetes CronJob-resurser använder standard cron-syntax. Bygg och förklara uttrycket visuellt.
  • Bygg Cron-poster för Linux crontabBygga uttryck för traditionell Unix cron (cron, crontab -e) med säkerhet.
  • Schemalägg databasunderhållsjobbSchemalägg säkerhetskopie-, vakuum- eller analys-jobb med säkerhet med hjälp av cron-uttryck.
  • Lär dig hur Cron-uttryck fungerarVarje justering visar omedelbar förklaring på vanlig engelska och en förhandsgranskning av nästa 5 körningar — bästa sättet att lära sig cron.

Så här fungerar det

Byggaren för cron-uttryck körs helt i din webbläsare med en handskriven tolk i lib/cron.ts — inget externt bibliotek, inget serveranrop. Den validerar uttrycket, bygger en beskrivning på klarspråk med webbläsarens inbyggda Intl.DateTimeFormat- och Intl.ListFormat-API:er för språkanpassade dag- och månadsnamn, och beräknar nästa schemalagda körningstider genom att stega framåt i tiden med fältöverhoppningslogik istället för att pröva varje minut.

  1. 1
    Uttrycket tolkas fält för fält
    Tolken delar upp uttrycket i fem (eller sex) blankstegsavgränsade fält och tokeniserar vart och ett för kommatecken, intervall (t.ex. 1-5), stegnotation (t.ex. */15) och namngivna värden som MON eller JAN. @makron som @daily expanderas till sina femfältsmotsvarigheter innan tolkningen börjar. Ogiltiga värden eller tal utanför intervallet visas som typade felnycklar som mappas till lokaliserade meddelanden.
  2. 2
    Läsbar beskrivning byggs
    describeCron() i lib/cron.ts bygger den engelska (eller lokaliserade) meningen genom att undersöka vilka fält som är jokertecken jämfört med explicita mängder. Dag- och månadsnamn löses upp via Intl.DateTimeFormat med den aktiva språkinställningen, och listobjekt sammanfogas med Intl.ListFormat så att konjunktionen ("och" jämfört med "," eller en språkspecifik form) matchar användarens språk.
  3. 3
    Nästa körningstider beräknas med fältöverhoppning
    nextRuns() stegar ett Date-objekt framåt från nuvarande ögonblick, men hoppar över hela månader, dagar eller timmar som inte kan matcha istället för att testa varje minut. Detta betyder att ett omöjligt schema som 30 februari snabbt avslutas genom en femårskontroll istället för att loopa 2,6 miljoner gånger.
  4. 4
    Uttrycket delas via URL-fragmentet
    Alla uttryck du skriver skrivs till sidans URL-fragment som #expr= (utjämnat med 500 ms fördröjning via window.history.replaceState). Fragmentet skickas aldrig till en server; sidan hydreras från det vid inläsning, så att dela eller bokmärka en URL återställer exakt uttrycket utan något serverstate.

Relaterade verktyg

Vanliga frågor