⏱️
← Terug naar handleidingen

Cron-expressie-syntaxis: Een Volledige Gids met Voorbeelden

· Tags: cron-syntax, crontab-format, cron-fields, cron-expression-guide, linux-automation

Cron-expressie-syntaxis

Cron is de standaard taakplanner op Unix-achtige systemen. Elke cron-expressie definieert een planning in een compacte string die aangeeft wanneer een opdracht moet worden uitgevoerd. Het begrijpen van de syntaxis is essentieel voor het automatiseren van back-ups, logrotatie en onderhoudstaken.

De 5-veldnotatie

Een standaard cron-expressie heeft vijf velden, gescheiden door spaties:

* * * * *
| | | | |
| | | | +----- Dag van de Week (0-7, 0 en 7 = zondag)
| | | +------- Maand (1-12)
| | +--------- Dag van de Maand (1-31)
| +----------- Uur (0-23)
+------------- Minuut (0-59)

Velden in Detail

| Veld | Bereik | Speciale tekens | Voorbeeld | |-------|-------|-------------------|---------| | Minuut | 0-59 | , - * / | 30 = op minuut 30 | | Uur | 0-23 | , - * / | 6 = om 6:00 | | Dag van de Maand | 1-31 | , - * / | 15 = op de 15e | | Maand | 1-12 | , - * / | 6 = in juni | | Dag van de Week | 0-7 | , - * / | 0 = op zondag |

De minuut bepaalt het exacte uitvoeringsmoment: 30 * * * * wordt uitgevoerd op minuut 30 van elk uur. Het uur definieert het tijdstip van de dag: 0 6 * * * wordt dagelijks om 6:00 uitgevoerd. De dag van de maand beperkt tot specifieke kalenderdatums: 0 0 15 * * wordt op de 15e van elke maand om middernacht uitgevoerd. De maand beperkt de uitvoering tot specifieke maanden: 0 0 1 6 * wordt op 1 juni uitgevoerd. De dag van de week bepaalt welke weekdagen: 0 8 * * 1-5 wordt van maandag tot en met vrijdag om 8:00 uitgevoerd.

Belangrijk: Dagen 29-31 worden alleen uitgevoerd in maanden die die datums hebben. In kortere maanden worden die waarden stilzwijgend overgeslagen.

Speciale Tekens

| Teken | Naam | Doel | Voorbeeld | |------|------|---------|---------| | * | Sterretje | Alle mogelijke waarden | * in minuut = elke minuut | | , | Komma | Lijst van waarden | 1,15,30 = minuten 1, 15, 30 | | - | Koppelteken | Bereik | 9-17 = uren 9 tot en met 17 | | / | Schuine streep | Stapwaarden | */5 = elke 5 minuten |

Stapwaarden met Schuine Streep

De schuine streep drukt "elke N eenheden" uit:

# Every 5 minutes
*/5 * * * *

# Every 2 hours
0 */2 * * *

# Every 15 minutes during business hours
*/15 9-17 * * *

Veelvoorkomende Cron-planningspatronen

| Planning | Expressie | Beschrijving | |----------|------------|-------------| | Elke minuut | * * * * * | Draait 1.440 keer per dag | | Elke 5 minuten | */5 * * * * | Health checks, monitoring | | Elk uur | 0 * * * * | Op elk heel uur | | Tweemaal daags | 0 6,18 * * * | Om 6:00 en 18:00 | | Dagelijks om middernacht | 0 0 * * * | Klassiek onderhoud | | Wekelijks op zondag | 0 0 * * 0 | Wekelijks onderhoud | | Eerste van de maand | 0 0 1 * * | Maandelijkse rapporten | | Werkdagen om 9:00 | 0 9 * * 1-5 | Begin van de kantooruren |

Niet-standaard Snelkoppelingen

Sommige cron-implementaties ondersteunen benoemde snelkoppelingen: @yearly (1 jan), @monthly (eerste van de maand), @weekly (zondag), @daily (middernacht), @hourly en @reboot (draait één keer bij het opstarten van het systeem). Ondersteund door Vixie cron, cronie en systemd-timers.

Veelvoorkomende Fouten

  • Het instellen van zowel dag-van-de-maand als dag-van-de-week creëert een OF-voorwaarde — de taak wordt uitgevoerd wanneer een van beide overeenkomt, wat zelden de bedoeling is.
  • Cron gebruikt de tijdzone van het systeem. Taken rond overgangen naar zomertijd kunnen twee keer worden uitgevoerd of helemaal niet.
  • Tel altijd vijf velden. Vier velden is ongeldig; zes velden vereisen uitgebreide cron-syntaxis.

Test Je Cron-expressies

Gebruik de cron-expressievalidator om de syntaxis te controleren, aankomende uitvoeringstijden te bekijken en fouten te ontdekken voordat ze de productie beïnvloeden. Een validatiecheck van dertig seconden voorkomt stille planningsfouten.

Cron-expressie-syntaxis: Een Volledige Gids met Voorbeelden - CoolTool