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.
Zo leest u 30 3 * * 1-5
Elke cron-expressie beantwoordt dezelfde vijf vragen, van links naar rechts — hier toegepast op een echte planning.
Als zin gelezen: maandag tot en met vrijdag, om 03:30. 30 3 * * 1-5
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-5Wat *, */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.
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.
Een bereik — ma–vr in het weekdagveld, 9–17 in het uurveld. Te combineren met een lijst: 1-5,0 is weekdagen plus zondag.
Een lijst — exacte waarden, gescheiden door komma's. De overdraagbare manier om „twee keer per uur” of „januari, april, juli, oktober” te zeggen.
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.
Geen cron. # L W ? horen bij Quartz — Jenkins, Spring, sommige CI-tools. Plak ze in een crontab en de regel wordt niet geïnstalleerd.
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.
Veelvoorkomende cron-valkuils
Beide worden live berekend, in uw browser — zonder omweg via de server.
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.
Blijf verkennen
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.