1. Hem
  2. cPanel/WHM
  3. Hur skapar jag cronjobb?

Hur skapar jag cronjobb?

I cPanel finns Cron-hantering under kategorin Avancerat.

cpanel-cron

Välj tidpunkt då du vill att cron-jobbet skall köras och fyll i ditt kommando och klicka sedan på knappen Lägg till nytt cron-jobb.

Kommandot ska ha detta format:

/sökväg/till/programmet /home/dittanvändarnamn/sökväg_till_scriptet > /dev/null 2>&1

Om du till exempel ska köra ett PHP-script kan det ser ut så här:

/usr/local/bin/php /home/dittanvändarnamn/script.php > /dev/null 2>&1

Hantera output

Du kan välja att det ska skickas ett mail till dig varje gång cron-jobbet körs, detta kan vara bra om du printar ut info om till exempel huruvida jobbet utfördes korrekt eller inte. Det kan även vara bra i felsökningssyfte, om cron-jobbet inte fungerar som du ska kan du få ut värdefulla felmeddelanden på det viset. Du kommer dock behöva ta bort ”> /dev/null 2>&1” för att det ska fungera så att det istället ser ut så här:

/usr/local/bin/php -q /home/dittanvändarnamn/sökväg_till_scriptet.php

Sedan kan du i fältet E-post ange den e-postadress som du vill att mailen ska skickas till.

OBS! Om du ska köra wget med ett cron-jobb och inte vill att det ska genereras någon output behöver du skicka båda -o och -O till /dev/null, t.ex:

wget -O /dev/null -o /dev/null "https://www.mindomän.se"

Överlappande cron-jobb

Ett problem som ofta uppstår är att man inte vet exakt hur länge cron-jobbet behöver köras. T.ex. om du har ett cron-jobb som körs klart på tre minuter och det körs var femte minut. Det är inga problem, då hinner det alltid köras klart innan det körs igång igen. Men tänk om det körs var femte minut men ibland tar det sju minuter innan det hinner klart. Då kommer cron-jobbet hinna köras ännu en gång innan den föregående körningen är klar. Detta kan orsaka alla möjliga problem och är något som vi vill undvika.

Det finns dock en lösning och det är Flock. Flock skapar en låsfil när cron-jobbet körs igång, om den låsfilen finns kvar även vid nästa körning så kommer ditt kommando inte köras. När ditt cron-jobb har kört klart så försvinner låsfilen.

Du kan använda Flock t.ex. så här:

/usr/bin/flock -w 1 /tmp/cron.lock /usr/local/bin/php -q /home/dittanvändarnamn/sökväg_till_scriptet.php

/usr/bin/flock är sökvägen till Flock-binären och /tmp/cron.lock är sökvägen till låsfilen, inget av detta behöver ändras. Allt efter låsfilen är vad du vill köra med cron-jobbet så det behöver du såklart anpassa efter dina behov.

Hjälpte den här guiden dig?

Relaterade guider

Behöver du mer hjälp?
Kan du inte hitta lösningen på ditt problem? Då kan du kontakta oss via e-post, chatt och telefon!
KONTAKTA OSS