1. Home
  2. cPanel/WHM
  3. Hvordan opretter jeg cron-jobs?

Hvordan opretter jeg cron-jobs?

Kom godt i gang med cron

I cPanel kan Cron-hantering findes under kategorien Avancerat.

Vælg det tidspunkt, du vil have cron-jobbet til at køre, og indtast din kommando, og klik derefter på knappen Lägg till nytt cron-jobb.

Kommandoen skal have dette format:

/path/to/program /home/ditbrugernavn/path_to_script > /dev/null 2>&1

Hvis du f.eks. skal køre et PHP-script, kan det se sådan ud:

/etc/cl.selector/php /home/ditbrugernavn/script.php > /dev/null 2>&1

Hvis du vil bruge en bestemt PHP-version i cron-jobbet, kan du indtaste /opt/alt/php73/usr/bin/php i stedet for /etc/cl.selector/php.

Du kan vælge, hvilken PHP-version du vil køre i, ved at erstatte 73 i kommandoen ovenfor med en anden PHP-version (f.eks. 70, hvis du vil bruge PHP 7.0).

Cron-job mod hjemmeside/URL

Hvis du bruger et system på din hjemmeside, der har brug for cron-jobs, der kører mod en bestemt URL, kan du ikke bare sætte URL’en som en kommando i cron-jobbet, du skal bruge kommandoen wget. Det fortæller serveren, at den skal besøge URL’en, når cron-jobbet kører, præcis som hvis du selv havde surfet til den via en browser. Så du indtaster kommandoen på følgende måde:

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

Erstat https://www.mindomän.se/kommandot med den fulde adresse, som du surfer til for at køre jobbet. Glem ikke at beholde anførselstegnene, ellers virker det måske ikke.

Håndtering af output

Du kan vælge at få tilsendt en e-mail, hver gang cron-jobbet køres, hvilket kan være nyttigt, hvis du f.eks. vil udskrive information om, hvorvidt jobbet blev udført korrekt eller ej. Det kan også være nyttigt til fejlfinding, hvis cron-jobbet ikke fungerer korrekt, kan du få værdifulde fejlmeddelelser på den måde. Du skal dog fjerne “> /dev/null 2>&1” for at få det til at virke, så det ser sådan ud i stedet:

/etc/cl.selector/php -q /home/dit brugernavn/path_to_scriptet.php

Derefter kan du i feltet E-post indtaste den e-mailadresse, som e-mailen skal sendes til.

BEMÆRK! Hvis du vil køre wget med et cron-job og ikke ønsker, at der skal genereres noget output, skal du sende både -o og -O til /dev/null, f.eks:

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

Overlappende cron-jobs

Et problem, der ofte opstår, er, at man ikke ved præcis, hvor længe cron-jobbet skal køre. For eksempel hvis du har et cron-job, der afsluttes om tre minutter, og det kører hvert femte minut. Det er ikke noget problem, for den har altid tid til at blive færdig, før den starter op igen. Men hvad nu, hvis den kører hvert femte minut, men nogle gange er syv minutter om at blive færdig? Dette vil give cron-jobbet tid til at køre igen, før den forrige kørsel afsluttes. Det kan give alle mulige problemer, og det er noget, vi gerne vil undgå.

Men der er en løsning, og det er Flock. Flock opretter en låsefil, når cron-jobbet køres, og hvis denne låsefil stadig er der ved næste kørsel, vil din kommando ikke blive kørt. Når dit cron-job er færdigt med at køre, forsvinder låsefilen.

Du kan f.eks. bruge Flock sådan her:

/usr/bin/flock -w 1 /tmp/cron.lock /etc/cl.selector/php -q /home/ditbrugernavn/path_to_scriptet.php

/usr/bin/flock er stien til den binære Flock-fil, og /tmp/cron.lock er stien til låsefilen, behøver intet af dette at blive ændret. Alt efter låsefilen er det, du vil køre med cron-jobbet, så du skal selvfølgelig tilpasse det til dine behov.

Was this article helpful?

Related Articles