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.
1. Log in op DirectAdmin.
2. Ga in het menu naar 'Geavanceerde functies' → 'Cronjobs'.
3. Klik op 'Cronjob aanmaken' en voer de gevraagde gegevens in.
4. Klik op 'Aanmaken'.
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) |
Je kunt alleen uitvoerbare bestanden als commando opgeven. Aangezien PHP-scripts geen uitvoerbare bestanden zijn (zie ook de uitleg over 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 onderstaande commando. Vervang 'deb12345' met je eigen deb-nummer en 'voorbeeld.nl' met je eigen domeinnaam.
/usr/local/bin/php /home/deb12345/domains/voorbeeld.nl/public_html/script.php
Let op de spatie. Let er ook op dat eventuele output van deze scripts naar het primaire e-mailadres wordt gestuurd van jouw pakket (aangeduid door jouw deb-nummer, of in het geval van een gebruiker onder een reseller, de gebruikersnaam). Daarnaast zijn heel veel variabelen anders dan wanneer je voorbeeld.nl/script.php aan zou roepen. Eén 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 volgende commando. Vervang 'voorbeeld.nl' met je eigen domeinnaam.
/usr/local/bin/wget -O - -q -t 1 "https://voorbeeld.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).
Domeinnaam:
5 sterren uit 5.118 reviews
320.000+ domeinnamen geregistreerd.
Bij de beste registrars in MT1000 en Emerce 100.