Naar inhoud springen

Cron-expressiegenerator:
wanneer draait dit?

Kies een frequentie en een tijdstip. De bouwer schrijft de vijfvelden-expressie, leest deze terug in gewone taal en toont de eerstvolgende tien data waarop hij afvuurt — zo controleert u de planning vóórdat deze in een crontab belandt, niet pas na de run van 03:30.

Cron-syntax

Zo leest u 30 3 * * 1-5

Elke cron-expressie beantwoordt dezelfde vijf vragen, van links naar rechts — hier toegepast op een echte planning.

30 minuut 0 – 59 op het halve uur
3 uur 0 – 23 3 uur 's nachts, servertijd
* dag van de maand 1 – 31 elke datum
* maand 1 – 12 elke maand
1-5 dag van de week 0 – 7 · 0 en 7 = zo maandag – vrijdag

Als zin gelezen: maandag tot en met vrijdag, om 03:30. 30 3 * * 1-5

Van gewone taal naar crontab

Bekijk de planning voordat cron deze uitvoert

De meeste cron-expressies worden voor het eerst getest door de run van 03:30 in productie. Deze generator verplaatst die test naar uw browser:

  • Gestructureerde vragen, geen giswerk. Frequentie, dag, tijdstip — elke onduidelijkheid in de tekstuele versie wordt een expliciete instelling.
  • De eerstvolgende tien runs, berekend. Een echte parser doorloopt de kalender, zodat u de planning als data leest, niet als syntax.
  • Overdraagbare POSIX-uitvoer. Vijf velden, alleen cijfers — werkt op elke crontab, van Alpine tot AIX. Exotische symbolen worden gesignaleerd, niet gegenereerd.

Een cron-expressie, veld voor veld

*/15 9-17 * * 1-5
*/15minuut — elke 15e: :00, :15, :30, :454× / uur
9-17uur — een bereik: 09:00 tot en met 17:459 uur
*dag van de maand — onbeperktwillekeurig
*maand — onbeperktwillekeurig
1-5dag van de week — maandag tot en met vrijdagweekdagen
De hele zin: elke 15 minuten, 09:00–17:45, ma–vr. Wilt u de omgekeerde richting voor een expressie die u niet zelf schreef? Dat is onze cron-vertaler.
Cron-symbolen

Wat *, */5 en @daily betekenen

Vijf werken in elke crontab. De zesde is exclusief voor Quartz en wordt niet geïnstalleerd.

*

Match alles — de standaardwaarde, en de luidruchtigste. In het minuutveld betekent dit zestig runs per uur, en dat is precies waar het ticket „waarom draaide dit 60 keer” begint.

→ bedoelt u één keer, schrijf dan een getal
*/5

Een stap — elke 5e waarde. Stappen werken niet veldoverstijgend: */90 in het minuutveld wordt stilzwijgend „op :00” — een cadans van 90 minuten heeft twee regels nodig.

→ stappen gelden alleen binnen één veld
1-5

Een bereik — ma–vr in het weekdagveld, 9–17 in het uurveld. Te combineren met een lijst: 1-5,0 is weekdagen plus zondag.

→ bereiken en lijsten zijn vrij te combineren
0,30

Een lijst — exacte waarden, gescheiden door komma's. De overdraagbare manier om „twee keer per uur” of „januari, april, juli, oktober” te zeggen.

→ noem de exacte waarden die u wilt
@daily

Bijnamen — @hourly @daily @weekly @reboot. Handig waar ondersteund, maar @reboot vuurt af zodra de cron-daemon start, en dat is niet altijd hetzelfde als een boot.

→ vijf numerieke velden werken in elke cron
MON#1

Geen cron. # L W ? horen bij Quartz — Jenkins, Spring, sommige CI-tools. Plak ze in een crontab en de regel wordt niet geïnstalleerd.

→ crontab is uitsluitend POSIX met 5 velden
Klaar om te kopiëren

Kant-en-klare cron-planningen

Elk schema is geldige POSIX. Voor de uitzonderingen, zoals „elke 2 maart om 17:30”, bekijkt u onze bibliotheek met cron-voorbeelden.

Elke minuut* * * * *
Elke 5 minuten*/5 * * * *
Ieder uur, op het hele uur0 * * * *
Elke 2 uur0 */2 * * *
Elke nacht om 03:3030 3 * * *
Weekdagen om 09:000 9 * * 1-5
Zondagen om 02:000 2 * * 0
1e van de maand, 06:000 6 1 * *
Elk kwartaal (1e jan · apr · jul · okt)0 6 1 1,4,7,10 *
FAQ

Veelgestelde vragen over cron-expressies

Het zet een planning die u in woorden kunt uitspreken, zoals „elke weekdag om negen uur”, om in de vijfvelden-expressie die cron leest: 0 9 * * 1-5. Deze tool gaat verder. Hij leest de expressie terug in gewone taal en berekent de eerstvolgende tien runtijden, zodat u de planning als data controleert. Ook signaleert hij de twee klassieke valkuils: de OR-regel van het dagveld en de fout om een sterretje te gebruiken waar een nul bedoeld is.

Van links naar rechts: minuut (0–59), uur (0–23), dag van de maand (1–31), maand (1–12), dag van de week (0–7, waarbij zowel 0 als 7 zondag betekenen). Elk veld accepteert een getal, een lijst (0,30), een bereik (1-5), een stap (*/15), of * voor „elke”. Sommige schedulers voegen een zesde veld toe voor seconden (Quartz, Spring) — een crontab accepteert dit niet.

Niet in één regel — stappen dragen de rest niet over naar een ander veld, dus */90 in het minuutveld betekent gewoon „op :00”. Het antwoord is twee crontab-regels die elkaar afwisselen: 0 0-21/3 * * * (00:00, 03:00, 06:00…) plus 30 1-22/3 * * * (01:30, 04:30, 07:30…) — samen elke 90 minuten. Dezelfde truc werkt voor elke cadans die niet deelbaar is op 60.

Omdat het minuutveld * was. * 3 * * * betekent „elke minuut waarin het uur 3 is” — 03:00 tot en met 03:59, zestig runs. Wat u bedoelde was 0 3 * * *. Dit is de klassieke cronfout, en de reden waarom deze tool altijd een expliciete minuut schrijft, tenzij u letterlijk „elke minuut” kiest.

Cron vuurt af zodra een van beide overeenkomt — een unie, geen doorsnede. Dit staat zo in de POSIX-specificatie, en het verrast mensen keer op keer. Neem 0 9 1-7 * 1, een voor de hand liggende poging tot „de eerste maandag van de maand”. Dit draait op dag 1–7 én elke maandag: 10 of 11 ochtenden per maand in plaats van één. De valkuil-weergave op deze pagina berekent beide lezingen naast elkaar en toont de overdraagbare oplossing.

De lokale tijd van de server — cron heeft geen tijdzoneveld. Draait de server op UTC (zoals de meeste cloud-images), dan is 09:00 in de crontab ook 09:00 UTC. Sommige cron-implementaties (cronie op RHEL/Fedora, FreeBSD) respecteren een CRON_TZ=-regel; de klassieke Debian vixie-cron doet dat niet. En let op de zomertijd als de server op een lokale zone draait: in de nacht van de omschakeling kan 02:30 twee keer voorkomen — of helemaal niet. Plannen buiten 01:00–03:00, of servers op UTC houden, omzeilt dit volledig.

Cron registreert dat het de taak gestart is; niets ingebouwds vertelt u of deze is geslaagd. Drie lagen: leid de uitvoer om naar een logbestand (>> /var/log/job.log 2>&1), stel MAILTO= in op een adres dat iemand leest, en zet vervolgens een onafhankelijke controle op het resultaat. Die derde laag werkt overal waar de uitvoer van buitenaf zichtbaar is: een opnieuw gegenereerde pagina, een vernieuwd certificaat, een sitemap. De weergave over stille fouten op deze pagina behandelt dit hele faalscenario.

Gratis tools zijn pas het begin.
Uptimia houdt uw sites gezond.

Uptime, SSL, Vervaldatum domein, paginasnelheid, transacties — gemonitord vanuit 171+ locaties wereldwijd. 30 dagen gratis.

30 dagen gratis geen kaart Altijd opzegbaar gratis plan na de proefperiode
100.000+ gemonitorde websites · AVG-conform