Skapa ett cronjobb eller en schemalagd uppgift (och vad du gör om den inte körs)
Med ett cronjobb (i DirectAdmin: Cron Jobs) låter du ett skript köras automatiskt vid fasta tider, till exempel varje natt. Här läser du hur du skapar ett och vad du gör om det inte fungerar.
Regler för cronjobb
- Låt en uppgift starta högst en gång per 10 minuter. Det ber vi alla om, eftersom du delar servern med andra webbplatser.
- Sprid ut flera cronjobb över tid och välj en lugn tidpunkt, till exempel 03:17 i stället för exakt midnatt.
- Tunga cronjobb som belastar servern länge är inte tillåtna. Det körs fler webbplatser på samma server. Vid behov stoppar vi ett cronjobb. Håll därför dina uppgifter korta och låt dem inte köras oftare än nödvändigt.
Skapa ett cronjobb
- Logga in i DirectAdmin och klicka under Advanced Features på Cron Jobs.
- Klicka på Create Cron Job.
- Fyll i minut, timme, dag, månad och veckodag. Fyll alltid i minuten med en siffra, inte en asterisk, annars körs uppgiften varje minut.
- Ange den fullständiga sökvägen i kommandot, till exempel:
/usr/local/bin/php -q /home/gebruiker/domains/jouwdomein.nl/public_html/taak.php
Ersätt gebruiker med ditt DA-användarnamn. - Klicka på Create.

E-post efter varje cronjobb
Utdata från ett cronjobb skickas till standardkontot för e-post i ditt paket, se Standardkontot för e-post i DirectAdmin. Du kan också skicka utdata till en egen adress med Send all Cron output to email. Vill du inte ha e-post, klicka då på Prevent Email när du skapar jobbet, eller lägg till detta efter kommandot:
>/dev/null 2>&1
Tänk på detta med PHP-skript
Ett skript som körs från 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 detta ö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 de här punkterna en i taget:
- Läs utdata. Ta tillfälligt bort
>/dev/null 2>&1och titta i e-posten i standardkontot för e-post, eller ange en egen adress. Där står ofta exakt vad som går fel. Du kan också 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 inte stämmer. Titta i filhanteraren: sökvägen börjar med
/home/gebruiker/domains/. - Kontrollera PHP-versionen. Med
/usr/local/bin/phpanvänder uppgiften 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 SSH-åtkomst och Terminal i DirectAdmin. Utan Terminal öppnar du skriptet i webbläsaren, eller anropar det i cronjobbet via
curl --silent https://www.jouwdomein.nl/taak.php. - Kontrollera behörigheterna. Skriptet måste vara läsbart: filer ska ha 644 och mappar 755. Se Behörigheter för filer och mappar (chmod).
- Kontrollera tidpunkten. Titta under Cronjob Executes: om uppgiften körs när du tror. Står det en asterisk vid minuten körs den varje minut. Det är för ofta.
- Kontrollera hur länge uppgiften tar. Tar en uppgift lång tid eller startar den igen innan den förra är klar, kan den låsa sig eller få ditt paket att nå sina gränser. Dela då upp arbetet i flera omgångar.
date >> /home/gebruiker/cron-log.txt; före ditt kommando.Se även i DirectAdmin-handboken: Standardkontot för e-post i ditt paket.
Utförlig förklaring med skärmbilder: Cron Jobs: låt uppgifter köras automatiskt i DirectAdmin-handboken.
Vill du lära dig mer? Gå vår gratis WordPress-kurs, lektion 6.3 Bilder, PHP och annan hastighetsvinst.
