Een cronjob, ook wel een geplande taak genoemd, wordt erg veel gebruikt in de webhosting wereld. Stel, je wil bijvoorbeeld dat een bepaald script die een actie uitvoert, elke nacht stipt om 2 uur uitgevoerd word.
Dan kun je hier een cronjob voor aanmaken die dit exact op het door jou gewenste tijdstip uitvoert.
Waar maak ik de cronjob aan?

Je kunt kiezen voor minuut, uur, dag van de
maand, maand en dag van de week (maandag t/m zondag, waarbij de nummers
0 of 7 de zondag aanduiden).
- Meerdere tijdstippen duid je aan door middel van komma’s. Bijvoorbeeld: 1,2,3 duidt op de minuten 1, 2 en 3.
- Een bepaalde tijdspanne geef je aan met een koppelteken. Bijvoorbeeld: 5-7 staat voor de minuten 5 t/m 7.
- Tijdsintervallen geef je aan door middel van een sterretje en een voorwaartse schuine streep. Bijvoorbeeld: */2 staat voor elke 2e minuut.
- Door gebruik te maken van combinaties kun je een zeer precies schema plannen. Bijvoorbeeld: 1,5,11-15,30-59/2 staat voor de minuten 1, 5, 11 t/m 15 en elke 2e minuut tussen 30 en 59.
- Met een sterretje (*) kun je een waarde negeren. Als je bijvoorbeeld
bij ‘Month’ een sterretje plaatst, wordt de cronjob elke maand
uitgevoerd.
- Vergeet niet om wanneer je alle gegevens heeft ingevoerd te klikken op ‘Add’ (‘Toevoegen’).
Zeer belangrijk is om bij ‘Command’ het volgende in te vullen in het geval van een PHP script :
/usr/local/bin/php -f /home/[gebruikersnaam]/domains/[jouwdomein.nl]/public_html/cronjob.php
Vervang hierbij: [gebruikersnaam] door je DirectAdmin gebruikersnaam en [jouwdomien.nl] door je domeinnaam.
Enkele voorbeelden
- Minute – de waarde in minuten waarop de cronjob moet worden uitgevoerd. (* is elke minuut)
- Hour – de waarde in uren waarop de cronjob moet worden uitgevoerd. (* is elk uur)
- Day of Month – de dag van de maand waarop de cronjob uitgevoerd moet worden. (* is elke dag)
- Month – de maand waarin de cronjob moet worden uitgevoerd (* is elke maand)
- Day of Week – de dag van de week waarop de cronjob uitgevoerd moet worden (* is elke dag)
In het bovenstaande voorbeeld zorgen we ervoor dat updater.cgi elke dag om 00:00 uur wordt uitgevoerd.
In dit voorbeeld wordt de cronjob alleen op elke maandag van de 10e maand, elke minuut uitgevoerd.
Dit geeft als resultaat dat de cronjob de 1e dag van elke maand om
14:30 uur uitgevoerd wordt, ongeacht de maand of dag van de week.
Flock op onze Cronjobs
Flock zorgt ervoor dat een cron niet dubbel komt te draaien, waardoor
de server minder load krijgt en dus sneller zal zijn. Stel je heb een
cron draaien en deze is dan totaal 3 minuten bezig met zijn acties, maar
in de cronjob zelf staat dat deze elke minuut draait. Dan zal de cron
na een bepaalde tijd, meerdere keren draaien en niet juist functioneren
(zaken blijven dan op elkaar wachten).
Flock maakt een “lock” bestand aan, het lock bestaat altijd. Zodra de
cron draait word het lock bestand vergrendeld op een hoger (kernel)
niveau hierdoor weet hij dat de cron nog draait en zal dus niet opnieuw
starten. Dat lock bestand ziet er als volgt uit (bijv.)
~/cron.lock.zdeyyiaq Deze staat in de home van je eigen gebruiker.
Mocht flock ervoor zorgen dat je cron niet meer goed draait, dan kan
je achter je cron het volgende zetten # noflock (let goed op de spatie
tussen # en noflock)