Als we het hebben over "taken op gezette tijden uitvoeren" in Linux en Unix, is het crontab het eerste waar je aan denkt. Het systeem voert herhalende taken automatisch uit, wat een geruststellende gedachte is! Maar zonder kennis kan het ook problematisch zijn, het is dus een wezen dat zowel engel als demon in zich draagt. Op basis van mijn ervaringen met het werken met crontab, deel ik hier wat het is, hoe je het gebruikt en enkele handige tips.

Wat is crontab eigenlijk?

crontab is eenvoudig gezegd een hulpmiddel in Linux en Unix systemen, waarmee je kunt plannen dat "een bepaalde taak automatisch en regelmatig uitgevoerd wordt". Met deze instellingen kan ik gemakkelijk vervelende taken die dagelijks, wekelijks of maandelijks herhaald worden, afhandelen. Zolang ik het maar instel, doet het systeem de klus zonder nadenken, alsof het mijn persoonlijke assistent is.

Wat dit allemaal mogelijk maakt, is de cron daemon. De cron daemon controleert de informatie in het crontab-bestand en voert op het opgegeven tijdstip de commando's uit, dat is de reden waarom ik zo graag gebruik maak van crontab.

Laten we de commando's van crontab bekijken

Er zijn een aantal nuttige commando's in crontab. Als je deze goed kent, kun je niet alleen tijd besparen, maar ook eenvoudig instellingen controleren en aanpassen.

  • crontab -e : Dit commando opent het crontab bestand om taken toe te voegen of aan te passen.
  • crontab -l : Dit toont de inhoud van het huidige gebruiker's crontab bestand.
  • crontab -r : Dit verwijdert het crontab bestand van de huidige gebruiker. (Wees voorzichtig!)

Hoe ziet het formaat van een crontab bestand eruit?

Een crontab bestand bestaat uit één regel per taak, waarbij elke regel uit vijf tijdsvelden en één commando bestaat. Als je voor het eerst naar deze velden kijkt, vraag je je misschien af wat het betekent, maar als je ze één voor één bekijkt, is het verrassend eenvoudig.

*  *  *  *  * /path/to/command
-  -  -  -  -
|  |  |  |  +----- Dag van de week (0 - 7) (zondag is 0 of 7)
|  |  |  +------- Maand (1 - 12)
|  |  +--------- Dag (1 - 31)
|  +----------- Uur (0 - 23)
+------------- Minuut (0 - 59)

Elke veld kan een nummer of * bevatten, waarbij * voor elke waarde staat. Bijvoorbeeld, * * * * * betekent "uitvoeren bij elke minuut, elk uur, elke dag, elke maand, elke dag van de week". In simpelere termen draait het elke minuut. Door dit goed toe te passen, is een enorme variëteit aan planning mogelijk.

Taken elke 5 minuten uitvoeren: Een voorbeeld van crontab

Stel dat je het commando */5 * * * * /path/to/myscript.sh hebt. Deze instelling betekent dat het script myscript.sh elke 5 minuten wordt uitgevoerd.

  • */5 : Elke 5 minuten
  • * : Betekent elk uur
  • * : Betekent elke dag
  • * : Betekent elke maand
  • * : Betekent elke dag van de week

Dat betekent dat dit script elke 5 minuten gedurende 24 uur per dag wordt uitgevoerd. Het draait automatisch zonder dat je eromheen hoeft, wat het gemakkelijk maakt!

Uitleg van het gebruik van crontab

Verschillende gebruiksvoorbeelden

Je kunt crontab instellen om aan verschillende situaties te voldoen. Laten we enkele voorbeelden bekijken van hoe je het kunt gebruiken.

  1. Voer script elke uur uit
    0 * * * * /path/to/script.sh
    Voer het script uit op het uur om 0 minuten. Bijvoorbeeld, 12:00, 13:00, 14:00…
  2. Voer back-up uit elke dag om 3 uur 's ochtends
    0 3 * * * /path/to/backup.sh
    Door om 3 uur 's ochtends elke dag een back-up uit te voeren, kan het je de noodzaak van overuren besparen.
  3. Voer uit op de 1e en 15e van elke maand om 2 uur 's ochtends
    0 2 1,15 * * /path/to/script.sh
    Het is goed om belangrijke taken elke maand in het begin en midden van de maand automatisch uit te voeren.
  4. Alleen in het weekend uitvoeren
    30 8 * * 6,7 /path/to/weekend_script.sh
    Dit is een instelling die een script elke zaterdag en zondag om 8:30 uur uitvoert.

Belangrijke punten om te overwegen bij het instellen van crontab

De crontab taken in Linux blijven behouden, zelfs na een heropstart van het systeem. Maar er is één belangrijk punt om op te letten: als er een taak is gepland die moet draaien terwijl het systeem uit is, zal deze niet worden uitgevoerd. Als bijvoorbeeld een taak is gepland voor 15:00 uur, maar het systeem wordt pas om 16:00 uur ingeschakeld, dan wordt de taak van 15:00 uur overslagen.

Om dit probleem op te lossen, kun je vriend anacron gebruiken. Anacron is een hulpmiddel dat "gemiste taken" uitvoert, zelfs als het systeem uit is. Dit compenseert de beperkingen van crontab, wat nuttig is wanneer je taken hebt die absoluut periodiek moeten worden uitgevoerd.


Als je crontab goed gebruikt, kan het me enorm helpen. Het automatiseren van belangrijke taken door middel van tijdplanning kan niet alleen tijd besparen, maar ook fouten verminderen. Natuurlijk, in het begin lijkt het misschien moeilijk vanwege het formaat, maar als je eraan gewend raakt, wacht er een ongekende gemak op je. Wat denk je ervan om na het lezen van dit artikel de wereld van crontab te betreden?