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
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.