Crontab Guru
Fem fält separerade med mellanslag, eller en förkortning som @daily.
Klistra in ett cron-uttryck och få en fält-för-fält-förklaring av vad det gör, på ditt eget språk. 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
Läs genomgången
Verktyget beskriver schemat i en enda mening och bryter sedan ner alla fem fälten: minut, timme, dag i månad, månad och veckodag. Nummer för månad och veckodag visas med namn.
-
3
Kontrollera nästa körningar
Det sista steget listar de fem nästa tillfällena då jobbet skulle köras, beräknade i din egen tidszon i stället för serverns. Verktyget varnar dig också när schemat är bredare än det ser ut, eller när inget datum i kalendern alls matchar det.
-
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.
CSS-pilgnerator
Skapa lokalt en CSS-pil med riktning, färg, storlek och ramens tjocklek och kopiera sedan regeln.
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.
Generator för platshållarbilder
Skapa en bild på 1–4000 px med egna färger och text, ladda ned PNG eller kopiera webbadress och HTML.
Referens för kortkommandon
Sök dokumenterade standardkommandon för VS Code, Chrome och Bash med GNU Readline i macOS, Windows och Linux.
Markdown-förhandsvisare
Skriv Markdown och se den renderade HTML:en uppdateras live. GitHub-flavored syntax med tabeller, uppgiftslistor, inramad kod och autolänkar.
Verktyget finns på andra språk
- Crontab Guru [PL]
- Crontab Guru [TH]
- Crontab Guru [DE]
- Crontab Guru [ID]
- Crontab Guru [ES]
- Crontab Guru [JA]
- Crontab Guru [PT]
- Crontab Guru [VI]
- Crontab Guru [FR]
- Crontab Guru [KO]
- خبير Crontab [AR]
- Crontab Guru [NL]
- Crontab Guru [EN]
- Crontab Guru [IT]
- Crontab Guru [RU]
- Crontab Guru [TR]
- Crontab Guru [ZH]