Opret et cronjob eller en opgave (og hvad du gør, hvis det ikke kører)
Med et cronjob (i DirectAdmin: Cron Jobs) får du et script til at køre automatisk på faste tidspunkter, for eksempel hver nat. Her kan du læse, hvordan du opretter et, og hvad du gør, hvis det ikke virker.
Regler for cronjobs
- Lad en opgave starte højst én gang hvert 10. minut. Det beder vi alle om, fordi du deler serveren med andre websites.
- Fordel flere cronjobs over tid, og vælg et roligt tidspunkt, som 03:17 i stedet for præcis midnat.
- Tunge cronjobs, der belaster serveren længe, er ikke tilladt. Der kører flere websites på den samme server. Om nødvendigt stopper vi et cronjob. Hold derfor dine opgaver korte, og lad dem ikke køre oftere end nødvendigt.
Opret et cronjob
- Log ind på DirectAdmin, og klik på Cron Jobs under Advanced Features.
- Klik på Create Cron Job.
- Udfyld minut, time, dag, måned og ugedag. Udfyld altid minuttet med et tal, ikke en stjerne, ellers kører opgaven hvert minut.
- Angiv den fulde sti i kommandoen, for eksempel:
/usr/local/bin/php -q /home/gebruiker/domains/jouwdomein.nl/public_html/taak.php
Erstat gebruiker med dit DA-brugernavn. - Klik på Create.

Mail efter hvert cronjob
Outputtet fra et cronjob sendes til standard-e-mailkontoen i din pakke, se Standard-e-mailkontoen i DirectAdmin. Du kan også sende outputtet til din egen adresse med Send all Cron output to E-Mail. Vil du ikke have mail, så klik på Prevent E-Mail, når du opretter opgaven, eller tilføj dette efter kommandoen:
>/dev/null 2>&1
Vær opmærksom ved PHP-scripts
Et script, der kører fra et cronjob, ved ikke, under hvilket domæne det kører. $_SERVER['SERVER_NAME'] og $_SERVER['DOCUMENT_ROOT'] er tomme, og en include med en relativ sti kan fejle. Sæt derfor dette øverst i dit script:
$pad = '/home/gebruiker/domains/jouwdomein.nl/public_html'; $_SERVER['SERVER_NAME'] = 'jouwdomein.nl'; $_SERVER['DOCUMENT_ROOT'] = $pad; set_include_path($pad . PATH_SEPARATOR . get_include_path());
Kører dit cronjob ikke?
Gå disse punkter igennem ét for ét:
- Læs outputtet. Fjern midlertidigt
>/dev/null 2>&1, og se mailen i standard-e-mailkontoen, eller angiv din egen adresse. Der står ofte præcis, hvad der går galt. Du kan også skrive outputtet til en logfil ved at tilføje>> /home/gebruiker/cron-log.txt 2>&1efter kommandoen. - Tjek stien. Meddelelsen Could not open input file betyder, at stien til scriptet ikke er korrekt. Se efter i File Manager: stien begynder med
/home/gebruiker/domains/. - Tjek PHP-versionen. Med
/usr/local/bin/phpbruger opgaven den samme PHP-version som dit website. Virker dit script kun med en anden version, så skift den under Select PHP version. - Test kommandoen manuelt. Har du en pakke med Terminal, så indsæt kommandoen der, og se hvad der sker, se SSH-adgang og Terminal i DirectAdmin. Uden Terminal åbner du scriptet i din browser, eller du kalder det i cronjobbet via
curl --silent https://www.jouwdomein.nl/taak.php. - Tjek rettighederne. Scriptet skal kunne læses: filer skal stå på 644 og mapper på 755. Se Rettigheder for filer og mapper (chmod).
- Tjek tidspunktet. Se under Cronjob will run:, om opgaven kører, når du tror. Står der en stjerne ved minuttet, kører den hvert minut. Det er for ofte.
- Tjek, hvor lang tid opgaven tager. Tager en opgave lang tid, eller starter den igen, før den forrige er færdig, kan den gå i stå eller få din pakke til at ramme sine grænser. Fordel i så fald arbejdet over flere runder.
date >> /home/gebruiker/cron-log.txt; foran din kommando.Se også i DirectAdmin-vejledningen: Standard-e-mailkontoen i din pakke.
Udførlig forklaring med skærmbilleder: Cron Jobs: få opgaver til at køre automatisk i DirectAdmin-vejledningen.
Vil du lære mere? Følg det gratis WordPress-kursus, lektion 6.3 Billeder, PHP og andre hastighedsgevinster.
