Skapa cronjob eller uppgift (och vad du ska göra om den inte körs)
Med ett cronjobb (i DirectAdmin: Cron Jobs) kan du låta ett skript köras automatiskt vid bestämda tidpunkter, till exempel varje natt. Nedan kan du läsa hur du skapar ett och vad du gör om det inte fungerar.
Regler för cronjobb
- Hos Webhost One och Webhost Two får ett jobb starta högst en gång var 10:e minut, för alla dina jobb tillsammans.
- Hos Power Webhost-paketen får jobb köras oftare.
- Fördela flera cronjobb över tiden och välj en lugn tidpunkt, till exempel 03:17 i stället för precis midnatt.
- Tunga cronjobb som belastar servern under lång tid är inte tillåtna. Fler webbplatser körs på samma server. Vid behov stoppar vi ett cronjobb. Håll därför dina jobb korta och låt dem inte köras oftare än nödvändigt.
Skapa ett cronjobb
- Logga in på DirectAdmin och klicka under Avancerade funktioner på Cron Jobs.
- Klicka på Create Cron Job.
- Fyll i minut, timme, dag, månad och veckodag. Ange alltid minuten som ett tal, inte en asterisk, annars körs jobbet varje minut.
- Ange hela sökvägen vid kommandot, till exempel:
/usr/local/bin/php -q /home/gebruiker/domains/jouwdomein.nl/public_html/taak.php
Byt ut gebruiker mot ditt DA-användarnamn. - Klicka på Create.

E-post efter varje cronjobb
Utdata från ett cronjobb skickas till ditt pakets standardkonto för e-post, se Standardkontot för e-post i DirectAdmin. Du kan även skicka utdata till en egen adress med Send all cron output to email. Vill du inte ha e-post, klicka då vid skapandet på Prevent Emails, eller lägg till följande efter kommandot:
>/dev/null 2>&1
Tänk på detta vid PHP-skript
Ett skript som körs via ett cronjobb vet inte under vilken domän det körs. $_SERVER['SERVER_NAME'] och $_SERVER['DOCUMENT_ROOT'] är tomma, och en include med en relativ sökväg kan misslyckas. Lägg därför till följande överst i ditt skript:
$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örs inte ditt cronjobb?
Gå igenom dessa punkter en efter en:
- Läs utdata. Ta tillfälligt bort
>/dev/null 2>&1och kontrollera e-posten i standardkontot för e-post, eller ställ in en egen adress. Där står ofta exakt vad som går fel. Du kan även skriva utdata till en loggfil genom att lägga till>> /home/gebruiker/cron-log.txt 2>&1efter kommandot. - Kontrollera sökvägen. Meddelandet Could not open input file betyder att sökvägen till skriptet är felaktig. Titta i filhanteraren: sökvägen börjar med
/home/gebruiker/domains/. - Kontrollera PHP-versionen. Med
/usr/local/bin/phpanvänder jobbet samma PHP-version som din webbplats. Fungerar ditt skript bara med en annan version, ändra den då under Select PHP version. - Testa kommandot manuellt. Har du ett paket med Terminal, klistra då in kommandot där och se vad som händer, se Öppna SSH eller Terminalen i DirectAdmin. Utan Terminal öppnar du skriptet i din webbläsare, eller anropar du det i cronjobbet via
curl --silent https://www.jouwdomein.nl/taak.php. - Kontrollera rättigheterna. Skriptet måste vara läsbart: filer ska ha behörigheten 644 och mappar 755. Se Rättigheter för filer och mappar (chmod).
- Kontrollera tidpunkten. Titta vid Cron job will run: om jobbet körs när du tror. Står det en asterisk vid minuten körs det varje minut och kan det stoppas.
- Kontrollera paketgränsen. Körs jobbet oftare än ditt paket tillåter, eller tar det för lång tid, avbryts det. Fördela då arbetet över flera omgångar.
date >> /home/gebruiker/cron-log.txt; före ditt kommando.Se även i DirectAdmin-manualen: Standardkontot för e-post i ditt paket.
Utförlig förklaring med skärmbilder: Cron Jobs: låt jobb köras automatiskt i DirectAdmin-manualen.
