Cronjobs
Wat is een cronjob?
Een cronjob is een geplande taak: een opdracht die de server op vaste momenten automatisch uitvoert. Denk aan een script dat elke nacht een back-up maakt of een taak die elke ochtend een overzicht verstuurt. Je stelt het moment één keer in en daarna draait de taak zonder dat je iets doet.
Cronjobs komen uit de wereld van Unix-achtige systemen, waarop veel hosting draait. In het controlepaneel vind je een onderdeel waarmee je zo’n taak aanmaakt, zonder rechtstreeks op de server te werken. Op een eigen VPS beheer je ze vaak ook zelf, zie controlepaneel op een VPS.
Hoe lees je de tijdsnotatie?
Een cronjob krijgt vijf velden voor het tijdstip, gevolgd door het commando. De velden staan voor minuut, uur, dag van de maand, maand en dag van de week. Een sterretje betekent ‘elke’.
Zo betekent 0 3 * * * dat de taak elke dag om 03:00 draait. Met */15 * * * * draait hij elke vijftien minuten. Je hoeft die notatie niet uit je hoofd te kennen, maar controleer na het instellen altijd of het tijdstip klopt. Let op de tijdzone van de server, want die kan afwijken van de jouwe.
Waarvoor zet je een cronjob in en waar let je op?
Veelgebruikte taken zijn back-ups, het opruimen van tijdelijke bestanden, het verwerken van geplande mails en het aanroepen van een script dat gegevens bijwerkt. Een taak die elke minuut draait, belast de server meer dan een taak die één keer per dag draait. Kies daarom alleen de frequentie die echt nodig is.
Zorg dat een taak veilig opnieuw kan draaien. Duurt een taak langer dan het interval, dan kunnen twee exemplaren tegelijk lopen. Stuur de uitvoer naar een logbestand, zodat je kunt zien of het gelukt is. Logbestanden lees je bij statistieken en logbestanden.
Veelgestelde vragen
Kan een cronjob stilletjes mislukken?
Ja. Een cronjob draait op de achtergrond, dus je ziet niet direct of hij lukt. Een fout kan blijven liggen, bijvoorbeeld als een script een bestandspad niet vindt. Stuur de uitvoer daarom naar een logbestand en controleer dat af en toe.
Is een cronjob hetzelfde als WP-Cron?
Nee. WP-Cron is een ingebouwd mechanisme van WordPress dat geplande taken uitvoert wanneer iemand de site bezoekt. Een cronjob draait op een vast moment, los van bezoekers. Beide kunnen naast elkaar bestaan, maar weet welke je gebruikt, zodat taken niet dubbel draaien.