Crontab Guru
Klistra in ett cron-uttryck och få en fält-för-fält-förklaring på enkel engelska av vad det gör. Ingen anledning att komma ihåg fältordningen eller slå upp intervallen: gurun går igenom vart och ett av de fem fälten (minut, timme, dag i månad, månad och veckodag) och läser uttrycket från vänster till höger. Användbart för att kontrollera en crontab-rad innan du driftsätter den, eller för att förklara en rad du ärvt.
Så använder du gurun
-
1
Klistra in uttrycket
Kopiera valfritt standardmässigt cron-uttryck med 5 fält (till exempel `0 9 * * 1-5`) i inmatningsfältet.
-
2
Be om förklaringen
Klicka på Explain Cron så returnerar verktyget en rad-för-rad-beskrivning av varje fält: minut, timme, dag i månad, månad och veckodag.
-
3
Läs beskrivningen
Förklaringen genereras på engelska, till exempel "Minute: every 5 minutes" eller "Hour: from 9 through 17."
-
4
Kontrollera innan du driftsätter
Använd förklaringen för att bekräfta att schemat gör det du vill innan du lägger in det i din crontab, CI-konfiguration eller Kubernetes-manifest.
Fält-fusklapp
┌───────────── minut (0-59)
│ ┌─────────── timme (0-23)
│ │ ┌───────── dag i månad (1-31)
│ │ │ ┌─────── månad (1-12 eller JAN-DEC)
│ │ │ │ ┌───── veckodag (0-6 eller SUN-SAT; Sön = 0 eller 7)
│ │ │ │ │
* * * * *
Operatorer i cron-uttryck
| Operator | Betydelse | Exempel |
|---|---|---|
* |
Varje värde | * * * * * |
, |
Lista av värden | 0,15,30,45 |
- |
Intervall | 9-17 |
/ |
Steg (start/steg) | */5, 0-30/5 |
L |
Sista (dag-i-månad eller sista veckodagen, Quartz) | L, 5L |
W |
Närmaste vardag | 15W (Quartz) |
# |
N:te veckodagen i månaden | 1#3 (Quartz) |
? |
Inget specifikt värde | Endast Quartz |
Läsordningen spelar roll
0 */2 * * 1-5 läses från vänster till höger som: minut 0, varannan timme, valfri dag i månad, valfri månad, måndag till fredag. Av vana läser människor ibland fälten från höger till vänster och blir förvirrade; börja alltid från minut.
Fällan “varje X minuter”
*/10 * * * * körs vid minut 0, 10, 20, 30, 40, 50, inte “var 10:e minut från när jobbet än skapades.” Cron-steg mäts alltid från början av fältets intervall. Om du driftsätter ett jobb kl. 12:03 är den första körningen kl. 12:10, inte 12:13.
För jobb som verkligen behöver “N minuter efter den senaste körningen”, använd en schemaläggare med en beständig timer (systemd-timrar med OnUnitActiveSec, eller schemaläggning på applikationsnivå med en lagrad tidsstämpel för senaste körning).
Cron-fällor värda att känna till
- Både dag-i-månad och veckodag inställda: de flesta cron-implementationer behandlar detta som ELLER-beteende, troligen inte vad du vill.
- Steg på 0:
*/0är ogiltigt. - Intervall som vänder runt:
22-2för timmar fungerar inte i klassisk cron; använd22-23,0-2. - 30 februari: ett schema som
0 0 30 2 *körs aldrig. - DST-tvetydighet: jobb schemalagda mellan kl. 02 och 03 kan köras två gånger eller noll gånger på dagar med övergång till/från sommartid.
Cron kontra moderna schemaläggare
Unix-cron finns fortfarande överallt, men för något kritiskt vill du förmodligen ha:
- systemd-timrar: fångar missade körningar, stödjer randomiserade offset, läser från unit-filer.
- Kubernetes CronJob: deklarativ, omförsök, tidszonsmedveten i 1.25+.
- Airflow / Prefect / Dagster: för jobb med beroenden, omförsök, backfills, observerbarhet.
- GitHub Actions schedule: cron med 5 fält, endast UTC, minst 5-minutersintervall, leverans efter bästa förmåga.
Cron i sig är ett utmärkt format men en dålig schemaläggare för jobb som inte får missas.
Vanliga frågor
Eftersom veckodag 0 är söndag i standard-cron (och 7 är också söndag, vilket stödjer båda konventionerna). Måndag är 1. Quartz numrerar veckodagar 1-7 med söndag = 1, vilket ofta ställer till det för folk som flyttar mellan dialekter.
Klassisk Unix-cron körs i serverns lokala tidszon, vad /etc/timezone än säger. Kubernetes CronJob, GitHub Actions och de flesta molnschemaläggare körs i UTC som standard. Bekräfta alltid och, när det är möjligt, använd UTC för att undvika DST-överraskningar.
Klassisk cron kan inte uttrycka detta direkt. Lösning: kör varje måndag och kontrollera datumet inuti skriptet: [ $(date +%d) -le 7 ] && ./job.sh. Quartz stödjer det nativt med 1#1.
Nej. Varje schema behöver sin egen rad. Men du kan kombinera flera scheman på en rad med listor: 0 9,17 * * * körs kl. 9 och kl. 17. För scheman som inte kan uttryckas som en enda rad, lägg till flera rader som pekar på samma kommando.
Relaterade verktyg
ASCII-tabellreferens
Full ASCII-tabell från 0 till 127 med decimal-, hex-, oktal- och binärvärden samt notation för numeriska HTML-referenser, inklusive NUL, LF och DEL.
HTML-teckenreferens
En sökbar lista över HTML-entiteter med deras namngivna och numeriska koder samt kopiering med ett klick för specialtecken och symboler.
Referens för kortkommandon
Sök dokumenterade standardkommandon för VS Code, Chrome och Bash med GNU Readline i macOS, Windows och Linux.
Färgpalettgenerator
Skapa monokromatiska, analoga, komplementära, triadiska eller tetradiska färgpaletter från en HEX-basfärg och exportera kopieringsklara CSS-variabler.
Slumpgenerator för bokstäver
Generera slumpade A-Z-bokstäver. Välj antal, versaler, gemener eller blandat läge och använd resultatet för spel, uppgifter eller klassrumsaktiviteter.
HTML-formaterare
Formatera HTML lokalt i webbläsaren med indrag på två eller fyra blanksteg. HTML laddas inte upp eller valideras.
Verktyget finns på andra språk
- Crontab Guru [TR]
- Crontab Guru [PL]
- Crontab Guru [NL]
- Crontab Guru [JA]
- Crontab Guru [PT]
- Crontab Guru [ZH]
- Crontab Guru [EN]
- Crontab Guru [DE]
- Crontab Guru [FR]
- خبير Crontab [AR]
- Crontab Guru [TH]
- Crontab Guru [ES]
- Crontab Guru [VI]
- Crontab Guru [ID]
- Crontab Guru [KO]
- Crontab Guru [IT]
- Crontab Guru [RU]