Een cron job instellen

Wat is een cron job en wat is de crontab?

Je werkt aan een nieuwe website en stuit op een taak die regelmatig moet worden uitgevoerd. Hoe pak je dit aan? Wat je nodig hebt, is een cron job. Een cron job is een geautomatiseerde taak die op vaste tijdstippen wordt uitgevoerd volgens een vooraf ingesteld schema of die kan worden geactiveerd door specifieke gebeurtenissen of voorwaarden.

“Een cron job is een taak die regelmatig automatisch moet worden uitgevoerd.”

Crontab is het configuratiebestand dat de cron jobs voor een gebruiker of systeem beheert. Het stelt je in staat om verschillende taken te plannen, zoals het bijwerken van statistieken, het verwijderen van oude bestanden en het verwerken van bestellingen. Tegenwoordig maken de meeste websites gebruik van cron jobs voor diverse automatiseringstaken.

“Een crontab is eigenlijk een tabel met alle cron jobs.”

Verschil tussen cron job en cron daemon

Een cron daemon is een achtergrondproces dat ervoor zorgt dat de cron jobs op de juiste tijd worden uitgevoerd. Het werkt continu op de server en controleert of er taken zijn die moeten worden uitgevoerd. Terwijl de cron job de taak is die wordt uitgevoerd, is de cron daemon verantwoordelijk voor het plannen en uitvoeren van deze taken.

“De cron daemon is de motor die zorgt voor het uitvoeren van cron jobs.”

Hoe een cron job instellen?

Gewoon via het script dat je gebruikt op je website (bijvoorbeeld WordPress)

WordPress biedt ingebouwde ondersteuning voor cron jobs via het wp-cron-systeem. Deze cron jobs worden meestal geactiveerd door bezoekers van je site. Dit betekent echter dat als je website weinig verkeer heeft, de cron jobs mogelijk niet op tijd worden uitgevoerd. Voor een betrouwbaardere uitvoering is het mogelijk om wp-cron handmatig te activeren met een externe cronjob. Met de plugin WP Crontrol kan je de cron job in detail bekijken.

“Met wp-cron worden cron jobs vaak geactiveerd door bezoekers van je site.”

Wp Control Voor Inspecteren Van Alle Cronjobs
Screenshot van WP Crontrol waarmee je alle cronjobs kan bekijken.

Via Hosting (Shared Hosting of VPS)

Als je een website hebt die wordt gehost op een gedeelde hosting of VPS, kun je vaak cron jobs instellen via het bedieningspaneel van je hostingprovider, zoals cPanel, Plesk of DirectAdmin. Dit geeft je meer controle en stelt je in staat om cron jobs op specifieke tijdstippen in te stellen. Op de afbeelding zie je hoe je een cron job instelt bij Vimexx.

“Via je hostingprovider heb je de mogelijkheid om cron jobs te plannen zonder afhankelijk te zijn van bezoekers.”

Cronjob Instellen In Directadmin
Voorbeeld cronjob in DirectAdmin

Via Terminal

Je kunt cron jobs ook instellen via de terminal. Dit doe je door het commando crontab -e te gebruiken, waarmee je de crontab voor de huidige gebruiker opent. Hier kun je de gewenste cron jobs in de juiste syntaxis toevoegen.

Hier is een eenvoudige stapsgewijze instructie:

  1. Open de terminal.
  2. Typ het commando crontab -e om de crontab voor de huidige gebruiker te openen.
  3. Voeg een nieuwe regel toe met de syntaxis:javascriptCode kopiëren* * * * * /pad/naar/commando De sterren vertegenwoordigen respectievelijk minuten, uren, dagen van de maand, maanden en dagen van de week. Vervang /pad/naar/commando door het pad naar het script of de opdracht die je wilt uitvoeren.

“Met crontab -e kun je eenvoudig cron jobs instellen in de terminal.”

Cron job door een andere website laten uitvoeren

Als je script geen ondersteuning biedt voor cron jobs of als je geen toegang hebt tot je hostingprovider, kun je een externe service gebruiken die cron jobs voor je uitvoert. Deze services activeren de taken op geplande tijden, maar dit kan kosten met zich meebrengen en maakt je afhankelijk van die externe dienst.

“Externe services kunnen je helpen bij het automatiseren van taken als je geen toegang hebt tot je hosting.”

Voorbeeld van een cron job

Als je elke dag om middernacht een script wilt uitvoeren, zou je de volgende regel toevoegen:

javascriptCode kopiëren0 0 * * * /pad/naar/jouw/script.sh

“Een cron job kan bijvoorbeeld dagelijks om middernacht een script uitvoeren.”

Speciale tekens en valkuilen

Bij het instellen van cron jobs is het belangrijk om enkele speciale tekens te begrijpen:

  • * (ster): staat voor “elke” waarde in dat veld.
  • , (komma): om meerdere waarden op te geven (bijv. 1,2,3 voor de eerste drie uren).
  • - (streepje): om een bereik aan te geven (bijv. 1-5 voor maandag tot vrijdag).
  • / (slash): om intervallen aan te geven (bijv. */2 voor elke twee minuten).

“Speciale tekens helpen je om flexibeler met cron jobs om te gaan.”

Valkuilen om te vermijden

  • Zorg ervoor dat je het juiste pad naar het script opgeeft.
  • Controleer de gebruikersrechten van de cron job.
  • Vergeet niet om uitvoer en foutmeldingen naar een logbestand te leiden voor latere controle.

“Let op de juiste paden en gebruikersrechten om fouten te voorkomen.”

Hoe controleren of de cron job werkt?

Je kunt controleren of je cron job werkt door de uitvoer naar een logbestand te leiden. Voeg aan het einde van je cron job-regel een redirect toe, zoals:

javascriptCode kopiëren0 0 * * * /pad/naar/jouw/script.sh >> /pad/naar/logbestand.log 2>&1

Hierdoor worden zowel de standaarduitvoer als de foutmeldingen naar logbestand.log geschreven. Controleer dit bestand regelmatig om te bevestigen dat de cron job correct functioneert.

“Controleer de logbestanden om te zien of je cron job goed werkt.”

Extra punten om op te letten:

  • wp-cron: Let op. Zoals reeds vermeld worden de cron jobs vaak pas uitgevoerd nadat er een bezoeker is op de WordPress website. Op websites met weinig bezoekers stel je dan beter een cron job in via je hosting panel.
  • Beveiliging: Zorg ervoor dat de scripts die je via cron jobs uitvoert veilig zijn! Zorg er natuurlijk ook voor dat de scripts veilig zijn.
  • Logbestanden: Bij problemen gebruik je de logboeken om te kijken wat er mis loopt.
Stefan Van Nerum met hondje

Over de auteur: Stefan Van Nerum

Industrieel Ingenieur Telecommunicatie

Stefan Van Nerum is een Industrieel Ingenieur Telecommunicatie met een diverse achtergrond in de technologiewereld. Met ervaring als docent in het middelbaar onderwijs, werkzaam als C++ programmeur, en het runnen van een computerwinkel gedurende 13 jaar, heeft Stefan zijn expertise ontwikkeld in computerreparatie en technologische oplossingen. Zijn passie voor informatica strekt zich uit tot zijn vrije tijd, waarin hij blijft verkennen en innoveren in de voortdurend veranderende wereld van technologie.

Plaats een reactie