Cronjob / Taak aanmaken

Het is mogelijk om zgn. CRON jobs te maken, dat is een programma dat op vooraf ingestelde tijden uitgevoerd wordt. Het is niet toegestaan cronjobs te maken die vaker dan 1x per 10 minuten draaien te maken. Ook zware cronjobs(Die de processor extreem belasten) zijn niet toegestaan. Er draaien immers nog meer websites op 1 server. U wilt geen last van anderen hebben, maar anderen ook niet van u. Web-Oke kan indien nodig cronjobs beeindigen. De regel is dat een cronjob niet langer mag draaien dan 10 seconden. 

Als u meerdere cronjobs maakt dan geldt dit voor het totaal, dus per 10 minuten max. 1 cronjob starten svp. Verspreid uw cronjobs dus goed, dat komt de server performance ten goede.

In uw cronjob neemt u bij voorkeur dit statement op: set_time_limit(10). Hierdoor zal uw cronjob stoppen als hij langer duurt dan 10 seconden.Een cronjob voert u in vanuit het controle paneel. 

Hoe ziet een cronjob eruit

Een cronjob die bijv. een PHP programma start ziet er alsvolgt uit:

/usr/local/bin/php -q /home/<usrdir>/domains/<uwdomein.xx>/public_html/<taak.php>  

U vervangt <usrdir> door de directadmin gebruikersnaam, <uwdomein.xx> door uw domeinnaam en <taak.php> door uw php script.

Email versturen na iedere cronjob

Standaard wordt er een email gestuurd aan uw standaard emailaccount. In die email worden eventuele fouten weergeven uit de cron, ook eventuele display opdrachten. U kunt die mailbox bekijken door op webmail.web-oke.nl als gebruikersnaam uw accountnaam op te geven, het wachtwoord en de servernaam. Op het moment dat u geen email meer wilt ontvangen iedere keer dan plaatst u dit achter de cronjob: /dev/null 2>&1

Paden zijn iets anders dan via ftp

U moet dus het volledige pad naar php ervoor zetten en het volledige pad op de server naar het php programma. Dat is anders als via FTP, nu staat /home/usrdir ervoor. Usrdir moet u vervangen door uw eigen gebruikersnaam (die van het controlepaneel).

Belangrijk!! Een cronjob kent geen domeinnaam

Let ook op dat het PHP programma vanuit een cronjob niet weet onder welke website hij draait. $_SERVER['SERVER_NAME'] is leeg maar er ook een include zal mislukken omdat er geen basispad is !!

Voorbeeld code om op te nemen in cron programma om dit te voorkomen:

  • $pad = "/home/<usrname>/domains/<uwdomein.xx>/public_html"; (let op <usrdir> en <uwdomein.xx> vervangen!!!)
  • $_SERVER['SERVER_NAME'] = 'uwdomein.xx';
  • $_SERVER['DOCUMENT_ROOT'] = $pad;
  • set_include_path($pad . PATH_SEPARATOR . ini_get("include_path"));
Was dit antwoord nuttig? 1 gebruikers vonden dit artikel nuttig (1 Stemmen)