Cron-expressie generator
Bouw een cron-expressie veld voor veld, lees het schema in gewone taal, zie de volgende uitvoeringen per tijdzone en zet hem om naar systemd, Quartz of AWS.
In gewone taal
Zowel dag van de maand als dag van de week is ingesteld: klassieke cron draait als EEN VAN BEIDE overeenkomt (niet allebei).
Bouwer
| Veld | Modus | Waarde |
|---|---|---|
| Seconde0–59 | ||
| Minuut0–59 | ||
| Uur0–23 | ||
| Dag van de maand1–31, L | ||
| Maand1–12 of JAN–DEC | ||
| Dag van de week0–7 (0 en 7 = zondag) of SUN–SAT |
Volgende uitvoeringen
Andere formaten
- crontab-regel
- systemd OnCalendar=
- Quartz / Spring
- AWS EventBridge
Zo bouw je een cron-expressie
- Typ of plak een expressie in Cron-expressie, of kies er een uit Voorbeelden. Macro’s zoals
@dailyof@weeklyworden ook geaccepteerd. - Of gebruik de Bouwer: kies voor elk veld een Modus (Elke, Elke N, Specifieke waarden, Bereik of Aangepast) en vul de Waarde in. De expressie wordt meteen bijgewerkt, en als je de expressie aanpast, volgt de bouwer.
- Vink Secondenveld toevoegen (6 velden) aan als je planner seconden ondersteunt.
- Lees het schema In gewone taal (in het Nederlands), en controleer daarna de lijst Volgende uitvoeringen. Kies de Tijdzone van de server die de taak uitvoert en Hoeveel uitvoeringen je wilt zien.
- Kopieer de expressie met Kopiëren, of gebruik een van de Andere formaten.
Fouten worden per veld uitgelegd, bijvoorbeeld “Minuut: 61 valt buiten het bereik (0–59)”, zodat je precies weet wat je moet verbeteren.
De vijf cron-velden
Een standaard cron-regel (Vixie) heeft vijf velden, gevolgd door de opdracht:
| Veld | Toegestane waarden |
|---|---|
| Minuut | 0–59 |
| Uur | 0–23 |
| Dag van de maand | 1–31 |
| Maand | 1–12 of JAN–DEC |
| Dag van de week | 0–7 (0 en 7 zijn zondag) of SUN–SAT |
Elk veld accepteert * (elke waarde), een lijst 1,15, een bereik 9-17, een stap */15 (elke 15 eenheden) of een bereik met stap 0-30/10. Zo betekent */15 9-17 * * 1-5: elk kwartier van 9:00 tot 17:45, maandag tot en met vrijdag.
Eén regel verrast veel mensen: zijn zowel Dag van de maand als Dag van de week beperkt, dan draait klassieke cron als een van beide overeenkomt. 0 0 13 * 5 draait op elke 13e en op elke vrijdag, niet alleen op vrijdag de 13e. De tool toont in dat geval een waarschuwing.
Volgende uitvoeringen en tijdzones
Cron gebruikt de klok van de machine, of de instelling CRON_TZ/TZ van de crontab. De lijst Volgende uitvoeringen wordt berekend voor de tijdzone die je kiest, inclusief de overgang van zomer- naar wintertijd en terug. Bij de overgang in het voorjaar kan een taak die om 2:30 staat worden overgeslagen, en in het najaar kan hij, afhankelijk van de implementatie, één of twee keer draaien. Voor taken die precies één keer moeten draaien kun je beter tijden buiten 1:00–3:00 kiezen of UTC gebruiken. De datums worden in Nederlandse notatie getoond.
Vixie cron, systemd-timers, Quartz en AWS
- systemd-timers gebruiken
OnCalendar=met een andere syntaxis:Mon..Fri *-*-* 09..17:00/15:00. Voorwaarden op weekdag en datum worden met EN gecombineerd, niet met OF, dus sommige cron-expressies hebben geen exact equivalent. - Quartz en Spring zetten een secondenveld vooraan en kunnen een jaarveld toevoegen. Een van de twee dagvelden moet
?zijn, en Quartz nummert weekdagen 1–7 vanaf zondag, anders dan de 0–6 van cron. De tool schrijft weekdagen daarom als namen (MON-FRI) om die valkuil te vermijden. - AWS EventBridge gebruikt
cron(minuten uren dag maand weekdag jaar): zes velden, geen seconden, een?in een van de dagvelden en een jaar aan het eind.
Standaard-cron heeft geen secondenveld. De vorm met 6 velden en seconden wordt door veel bibliotheken ondersteund (node-cron, Spring, Quartz), maar niet door de systeem-crontab.
Alles draait in je browser: de expressie wordt nergens naartoe gestuurd.
Veelgestelde vragen
Hoe laat ik een taak elke 5 minuten draaien?
Gebruik */5 * * * *. De taak draait op minuut 0, 5, 10… van elk uur.
Hoe laat ik een taak op de laatste dag van de maand draaien?
Veel planners accepteren L in het veld dag van de maand: 0 18 L * *. Met gewone Vixie cron laat je hem dagelijks op dag 28–31 draaien en test je in het script of morgen de 1e is.
Wat doet @reboot?
Het voert de opdracht één keer uit, wanneer de cron-daemon start. Er is geen schema, dus de tool kan er geen uitvoeringstijden voor tonen.
Waarom draait mijn taak niet op de getoonde tijd?
Controleer de tijdzone van de server, of je de crontab van de gebruiker of /etc/crontab gebruikt (die heeft een extra veld voor de gebruiker), en het PATH: cron start met een minimale omgeving.
Is 0 of 7 zondag?
Allebei. In het veld dag van de week betekenen 0 en 7 zondag, 1 is maandag en 6 is zaterdag.
Vergelijkbare tools
- Unix-timestamp omrekenen Reken Unix-timestamps in seconden of milliseconden om naar een leesbare datum in lokale tijd, UTC en ISO 8601, en zet elke datum terug om naar epochtijd.
- Tijdzones omrekenen Reken een datum en tijd om van de ene tijdzone naar meerdere andere tegelijk, met automatische zomertijd. Zoek op elke IANA-tijdzone of stad.
- Chmod-calculator Zet Unix-bestandsrechten om tussen vinkjes, octaal (755) en symbolisch (rwxr-xr-x), met setuid, setgid, sticky bit en kant-en-klare chmod-opdrachten.