Je bent hier: Handleiding » Webhosting » Cronjobs
 

Cronjobs

Cronjobs zijn geplande taken die je op een bepaald moment van de dag (of meerdere momenten) automatisch uit kunt laten voeren. Je kunt cronjobs via DirectAdmin aanmaken, wijzigen en verwijderen.

Aanmaken

  1. Klik onder 'Advanced Features' op 'Cronjobs';
  2. Voer de gevraagde gegevens in:
    • Minute, Hour, Day of Month, Month en Day of Week: specificeer de minuut, uur, dag van de maand, maand en dag van de week (respectievelijk) waarop het script uitgevoerd moet worden. De laatste staat voor zondag tot en met zondag. Zondag is 0 of 7. Lees hieronder meer over het invoeren van de tijden;
    • Command: het commando dat uitgevoerd moet worden. Een PHP-script begin je met /usr/local/bin/php. Eventueel kun je op op 'Prevent E-mail' klikken om te voorkomen dat het script e-mails naar jouw hoofde-mailadres stuurt met eventueel uitvoer van dat script (denk aan foutmeldingen). Lees hieronder meer over commando's.
  3. Klik op Add.

Tijden kiezen

Allereerst is het belangrijk dat je geen 'standaardtijd' kiest voor het uitvoeren van je script. Een standaardtijd is bijvoorbeeld ieder heel uur, of ieder kwartier. Tijden als 2:00 en 10:30 zijn dus af te raden. Kies liever een tijd waarop de server het niet druk heeft (meestal tussen 4:00 en 6:00 uur), zoals 4:34 of iets anders willekeurigs. Op die manier wordt de uitvoer verspreid over de gehele dag en is het dus niet druk om bijvoorbeeld 0:00 uur.

Verder moet je een script zo min mogelijk uitvoeren. Een cronjob is meestal erg zwaar voor de server en misbruik van deze functionaliteit kan gevolgen hebben. Verder moet je erop letten dat je een script niet iedere minuut uit laat voeren. Een asterisk (*) bij het minuutveld is dus onacceptabel.

Je kunt in het formulier tijden als volgt invoeren:

2 de tweede minuut, uur, …
1,2 het eerste en tweede minuut, uur, …
* iedere minuut, uur, …
*/2 iedere tweede minuut, uur, …
1-3 de eerste tot en met derde minuut, uur, …
1,*/6,5-9 een combinatie van bovenstaande

Je kunt deze waarden invullen bij alle tijdseenheden, dus bij de minuten, uren, dagen van de maand, maanden en dagen van de week. Wil je bijvoorbeeld een script iedere tweede maand uitvoeren op de eerste maandag van de maand om 4:15 en 9:15, dan kun je het volgende invoeren:

Minute 15 ieder tijdstip is op de vijftiende minuut
Hour 4,9 het vierde en negende uur
Day of Month 1-7 de eerste maandag van de maand moet tussen de eerste en de zevende van de maand zitten
Month */2 iedere tweede maand
Day of Week 1 maandag is nummer 1 (zondag = 0, maandag = 1, …, zaterdag = 6)

Scripts en commando's

Je kunt alleen uitvoerbare bestanden als commando opgeven. Aangezien PHP-scripts geen uitvoerbare bestanden zijn (zie ook Bestandsrechten), moet je eerst de PHP-module aanroepen. Deze is te vinden op de locatie /usr/local/bin/php.

Een PHP-script in je public_html-map kun je dan aanroepen met het commando /usr/local/bin/php /home/debXXXXX/domains/jedomein.nl/public_html/script.php (let op de spatie). Let erop dat eventuele output van deze scripts naar het hoofde-mailadres wordt gestuurd dat in staat gesteld onder 'Site Summary / Statistics / Logs' en dat heel veel variabelen anders zijn dan wanneer je jedomein.nl/script.php aan zou roepen. Een van de belangrijkste punten is dat relatieve paden niet zullen werken; je moet absolute paden gebruiken (eventueel met behulp van de variabelen binnen $_SERVER).

Je kunt ook een pagina van buiten aanroepen, alsof iemand de pagina vanaf je website aanroept. Dat kun je doen met het commando /usr/local/bin/wget -O - -q -t 1 http://jedomein.nl/script.php. Je omzeilt dan het probleem dat de relatieve paden niet meer kloppen, maar je script kan dan wel door iedereen aangeroepen worden. Bovendien is dit niet geschikt voor een cron die vaker dan 1x per dag uit wordt gevoerd en zou alleen mogen dienen als laatste optie als al het voorgaande niet blijkt te werken. Dataverkeer gegenereerd door dit type cron zal overigens twee keer mee worden gerekend (aangezien de output wordt geüpload en gedownload op dezelfde server).

 
Copyright © 2010 Antagonist