Wat zijn cronjobs en hoe stel je ze in?

Wat zijn cronjobs en hoe stel je ze in?

Geschreven op 16-11-2020 door Sander Cruiming
Wat zijn cronjobs en hoe stel je ze in?

Als je een hostingpakket hebt bij XXL Hosting, kun je gebruik maken van cronjobs. Cronjobs zijn ingeplande taken die om de zoveel tijd automatisch worden uitgevoerd door de server. Dit kan handig zijn als je bijvoorbeeld elk uur een cache wilt resetten, elke nacht een backup wilt laten maken, of elke maandag een script wilt laten runnen. In deze blogpost duiken we verder in op hoe cronjobs werken en hoe je ze instelt.

Hoe werkt een cronjob?

Een cronjob is zoals gezegd een taak die repeterend door de server wordt uitgevoerd, en bestaat uit twee onderdelen:

  1. Het tijdstip waarop de cronjob wordt uitgevoerd
  2. De opdracht die dan moet worden uitgevoerd

Door deze 2 onderdelen in te stellen, zal de server op het door jou gekozen tijdstip de ingevoerde opdracht steeds weer opnieuw uitvoeren.

Hoe stel ik het tijdstip van de cronjob in?

Het tijdstip-gedeelte van de cronjob bestaat uit 5 getallen, waarmee je het terugkerende tijdstip kunt instellen:

*   *   *   *   *
│   │   │   │   │
│   │   │   │   └──────── Dag van de week (0-7), waarbij 0 zondag is
│   │   │   └──────────── Maand (1-12)
│   │   └──────────────── Dag van maand (0-31)
│   └──────────────────── Uur (0-23)
└──────────────────────── Minuut (0-59)

Hieronder geef ik een aantal voorbeelden om het instellen van het tijdstip duidelijker te maken:

  • Elke 1e van de maand om 14:30 uur:

30 14 1 * *

  • Elke maandag om 9:00 uur:

0 9 * * 1

  • Elke dinsdag en donderdag om 0:00 uur:

0 0 * * 2,4

  • Elk uur:

0 * * * *

  • Elke minuut:

* * * * *

  • Elk kwartier:

*/15 * * * *

Hoe stel ik de opdracht van de cronjob in?

Vaak wil je een bepaald PHP script of pagina laten uitvoeren door de cronjob, of wil je dat een bepaalde pagina wordt opgevraagd door de server. Laten we kijken hoe je dat opgeeft in het "opdrachtgedeelte" van de cronjob:

PHP script uitvoeren met een cronjob

Een PHP script voer je als volgt uit:

php -q /home/gebruikersnaam/map/script.php >/dev/null 2>&1

Hierbij is /home/gebruikersnaam/map/script.php het path naar je PHP script. De -q paramater staat voor "quiet", en betekent dat er geen output getoond hoeft te worden. Verder zorgt het laatste gedeelte " /dev/null 2>&1 " er voor dat ook eventuele andere output niet getoond wordt. Mocht het script wel output genereren, dan zal de cronjob je een mailtje met deze output sturen - elke keer als de cronjob draait. Dit laatste is waarschijnlijk niet wenselijk, zeker als de cronjob vaak wordt uitgevoerd.

Webpagina opvragen met een cronjob

Vervolgens gaan we kijken hoe je een webpagina kunt opvragen met een cronjob. Dit kan een pagina van je eigen website zijn, maar het kan ook een externe pagina van een andere website zijn.

wget -O /dev/null https://www.domein.nl/script.php >/dev/null 2>&1

Dit commando zal de genoemde pagina bezoeken, waarbij de output weer wordt genegeerd. Het script op deze URL wordt dan wel gewoon uitgevoerd.

Cronjobs instellen en beheren in cPanel

In het cPanel control panel van je hostingpakket is het instellen en beheren van cronjobs een stukje makkelijker gemaakt. Je kunt via een online interface zelf cronjobs in elkaar zetten met een soort wizard. Nadat je een cronjob hebt aangemaakt, kun je deze daarna ook wijzigen of verwijderen.

Cronjobs instellen
Cronjobs instellen in cPanel


In dit artikel hebben we uitgelegd wat cronjobs zijn en hoe je ze aanmaakt.

Mocht je aan de hand van dit artikel nog vragen hebben, aarzel dan niet en neem contact met ons op.