In dit artikel
Wat is Crontab?
Crontab (cron table) is een tijdgebaseerde taakplanner in Unix-achtige besturingssystemen. Het stelt u in staat commando's of scripts automatisch uit te voeren op opgegeven intervallen — van elke minuut tot eenmaal per jaar.
Elke gebruiker op een systeem kan een eigen crontab-bestand hebben, en er is ook een systeembrede crontab. Het crontab-bestand bevat een lijst van cron-taken, waarbij elke regel een schema definieert met een vijfveldige tijdexpressie gevolgd door het uit te voeren commando.
Cron-expressie syntax
Een cron-expressie bestaat uit vijf velden gescheiden door spaties:
- Minuut (0-59) — geeft aan op welke minuut de taak moet draaien
- Uur (0-23) — geeft het uur aan in 24-uursformaat
- Dag van de maand (1-31) — geeft de dag van de maand aan
- Maand (1-12) — geeft de maand aan
- Dag van de week (0-7, waarbij 0 en 7 zondag zijn) — geeft de weekdag aan
Speciale tekens zijn: * (elke waarde), / (stapwaarden), - (bereiken), en komma (lijsten).
Veelvoorkomende Cron-patronen
De meest gebruikte cron-expressies:
- */5 * * * * — elke 5 minuten, vaak gebruikt voor gezondheidscontroles
- 0 * * * * — elk uur op minuut 0
- 0 0 * * * — dagelijks om middernacht, standaard voor back-ups en logrotatie
- 0 0 * * 1-5 — elke werkdag om middernacht
- 0 0 1 * * — eerste dag van elke maand om middernacht
- 0 9,17 * * 1-5 — om 9:00 en 17:00 op werkdagen
Probeer gratis — geen aanmelding vereist
Bouw een Cron-expressie →Veelvoorkomende toepassingen
Cron-taken automatiseren vrijwel elke repetitieve systeemtaak:
- Logrotatie en opschoning — automatisch oude logbestanden comprimeren of verwijderen
- Database-back-ups — regelmatige back-upcommando's plannen
- Rapportgeneratie — dagelijkse, wekelijkse of maandelijkse rapporten samenstellen
- Cache wissen — periodiek verlopen cache-entries opruimen
- Systeembewaking — gezondheidscontroles uitvoeren op regelmatige intervallen
Tips en valkuilen
Zelfs ervaren ontwikkelaars komen veelvoorkomende cron-valkuilen tegen:
- Tijdzonebewustzijn — cron gebruikt standaard de systeemtijdzone. Stel TZ in of gebruik UTC
- Overlappende taken — gebruik flock om te voorkomen dat meerdere instanties tegelijk draaien
- PATH-problemen — cron draait met een minimale omgeving. Gebruik altijd absolute paden
- Uitvoerverwerking — cron mailt stdout en stderr standaard. Redirect naar een logbestand
- Debugging — controleer /var/log/syslog of /var/log/cron voor uitvoeringsrecords
Veelgestelde vragen
Kan cron taken plannen met precisie op de seconde?
Standaard cron ondersteunt geen seconden. Gebruik een workaround met sleep-commando's of schakel over naar systemd timers.
Wat is het verschil tussen cron en systemd timers?
Cron is de traditionele Unix-planner. Systemd timers bieden sub-minuut precisie en betere logging maar zijn Linux-specifiek.
Hoe test ik een cron-taak?
Voer het commando eerst handmatig uit, simuleer dan de cron-omgeving met env -i, en plan het vervolgens elke minuut om te verifieren.