Crontab Guru
Plak een cron-expressie en krijg een veld-voor-veld uitleg, in eenvoudig Engels, van wat hij doet. U hoeft de veldvolgorde niet te onthouden of bereiken op te zoeken: de guru doorloopt elk van de vijf velden (minuut, uur, dag van de maand, maand en dag van de week) en leest de expressie van links naar rechts. Handig om een crontab-regel te controleren voordat u hem in productie zet, of om een overgenomen regel uit te leggen.
Zo gebruikt u de guru
-
1
Plak de expressie
Kopieer elke standaard cron-expressie met 5 velden (bijvoorbeeld `0 9 * * 1-5`) in het invoerveld.
-
2
Vraag de uitleg
Klik op Explain Cron en de tool geeft een regel-voor-regel beschrijving van elk veld: minuut, uur, dag van de maand, maand en dag van de week.
-
3
Lees de beschrijving
De uitleg wordt in het Engels gegenereerd, bijvoorbeeld "Minute: every 5 minutes" of "Hour: from 9 through 17."
-
4
Controleer vóór de uitrol
Gebruik de uitleg om te bevestigen dat het schema doet wat u wilt, voordat u het in uw crontab, CI-configuratie of Kubernetes-manifest zet.
Spiekbriefje per veld
┌───────────── minuut (0-59)
│ ┌─────────── uur (0-23)
│ │ ┌───────── dag van de maand (1-31)
│ │ │ ┌─────── maand (1-12 of JAN-DEC)
│ │ │ │ ┌───── dag van de week (0-6 of SUN-SAT; zo = 0 of 7)
│ │ │ │ │
* * * * *
Operatoren in cron-expressies
| Operator | Betekenis | Voorbeeld |
|---|---|---|
* |
Elke waarde | * * * * * |
, |
Lijst van waarden | 0,15,30,45 |
- |
Bereik | 9-17 |
/ |
Stap (start/stap) | */5, 0-30/5 |
L |
Laatste (dag-van-maand of laatste weekdag, Quartz) | L, 5L |
W |
Dichtstbijzijnde weekdag | 15W (Quartz) |
# |
N-de weekdag van de maand | 1#3 (Quartz) |
? |
Geen specifieke waarde | Alleen Quartz |
Leesvolgorde is belangrijk
0 */2 * * 1-5 leest u van links naar rechts als: minuut 0, elke 2 uur, elke dag van de maand, elke maand, maandag tot en met vrijdag. Mensen lezen de velden uit gewoonte soms van rechts naar links en raken in de war; begin altijd bij de minuut.
De valkuil van “elke X minuten”
*/10 * * * * vuurt op minuut 0, 10, 20, 30, 40, 50, niet “elke 10 minuten vanaf het moment dat de taak is aangemaakt.” Cron-stappen meten altijd vanaf het begin van het bereik van het veld. Als u een taak om 12:03 uitrolt, is de eerste uitvoering om 12:10, niet om 12:13.
Voor taken die echt “N minuten na de laatste uitvoering” nodig hebben, gebruikt u een scheduler met een persistente timer (systemd-timers met OnUnitActiveSec, of scheduling op applicatieniveau met een opgeslagen timestamp van de laatste uitvoering).
Cron-valkuilen die u moet kennen
- Dag-van-maand én dag-van-week beide ingesteld: de meeste cron-implementaties behandelen dit als OF-gedrag, waarschijnlijk niet wat u wilt.
- Stap van 0:
*/0is ongeldig. - Bereik dat omslaat:
22-2voor uren werkt niet in klassieke cron; gebruik22-23,0-2. - 30 februari: een schema als
0 0 30 2 *vuurt nooit. - Zomertijd-dubbelzinnigheid: taken die tussen 2 en 3 uur ’s nachts staan gepland, kunnen op overgangsdagen twee keer of nul keer vuren.
Cron versus moderne schedulers
Unix-cron is nog overal te vinden, maar voor iets kritieks wilt u waarschijnlijk:
- systemd-timers: vangen gemiste uitvoeringen op, ondersteunen gerandomiseerde offsets, lezen uit unit-bestanden.
- Kubernetes CronJob: declaratief, herhaalpogingen, tijdzonebewust vanaf 1.25+.
- Airflow / Prefect / Dagster: voor taken met afhankelijkheden, herhaalpogingen, backfills en observability.
- GitHub Actions schedule: cron met 5 velden, alleen UTC, minimaal interval van 5 minuten, best-effort levering.
Cron zelf is een prima formaat, maar een slechte scheduler voor taken die niet gemist mogen worden.
Veelgestelde vragen
Omdat dag-van-week 0 in standaard cron zondag is (en 7 ook zondag is, zodat beide conventies worden ondersteund). Maandag is 1. Quartz nummert weekdagen 1-7 met zondag = 1, wat mensen die tussen dialecten wisselen geregeld op het verkeerde been zet.
Klassieke Unix-cron draait in de lokale tijdzone van de server, wat /etc/timezone ook aangeeft. Kubernetes CronJob, GitHub Actions en de meeste cloudschedulers draaien standaard in UTC. Controleer dit altijd en gebruik waar mogelijk UTC om zomertijdverrassingen te voorkomen.
Klassieke cron kan dit niet direct uitdrukken. Workaround: draai elke maandag en controleer de datum in het script: [ $(date +%d) -le 7 ] && ./job.sh. Quartz ondersteunt het van nature met 1#1.
Nee. Elk schema heeft zijn eigen regel nodig. Maar u kunt meerdere schema’s combineren op één regel met lijsten: 0 9,17 * * * draait om 9:00 en 17:00. Voor schema’s die niet als één regel zijn uit te drukken, voegt u meerdere regels toe die naar hetzelfde commando wijzen.
Gerelateerde tools
ASCII-tabelreferentie
Volledige ASCII-tabel van 0 tot 127 met decimale, hexadecimale, octale en binaire waarden en HTML-numerieke referentienotatie, inclusief control codes zoals NUL, LF en DEL.
HTML-tekenreferentie
Een doorzoekbare lijst met HTML-entiteiten, hun benoemde en numerieke codes, plus kopiëren met één klik voor speciale tekens en symbolen.
Sneltoetsenoverzicht
Zoek gedocumenteerde standaardsneltoetsen voor VS Code, Chrome en Bash met GNU Readline op macOS, Windows en Linux.
HAR-bestandsviewer
Open HAR-netwerkopnamen lokaal, filter verzoeken, bekijk gemaskeerde headers en timing en exporteer opgeschoonde samenvattingen zonder upload.
ASCII naar binair-converter
Converteer elke ASCII-string naar zijn binaire representatie. Elk teken wordt acht bits, gescheiden door spaties, klaar voor protocoltrace of huiswerk.
Telefoonnummers controleren
Controleer de structuur van telefoonnummers per land en bekijk regio, type en E.164-, internationale, nationale en RFC 3966-notatie.