1. Home
  2. cPanel/WHM
  3. Hvordan oppretter jeg cron-jobber?

Hvordan oppretter jeg cron-jobber?

Komme i gang med cron

I cPanel er tilgjengeligCron-hantering under kategorienAvancerat .

Velg tidspunktet du vil at cron-jobben skal kjøre og fyll inn kommandoen din, og klikk deretter på knappenLägg till nytt cron-jobb .

Kommandoen skal ha dette formatet:

/path/to/the program /home/yourusername/path_to_the_script > /dev/null 2>&1

Hvis du for eksempel skulle kjøre et PHP-skript, kan det se slik ut:

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

Hvis du vil bruke en spesifikk PHP-versjon i cron-jobben, kan du spesifisere/opt/alt/php73/usr/bin/php i stedet for/etc/cl.selector/php .

Du kan velge hvilken PHP-versjon du vil kjøre i ved å erstatte 73 i kommandoen ovenfor med en annen PHP-versjon (for eksempel 70 hvis du vil bruke PHP 7.0).

Cron jobb mot nettside/URL

Hvis du bruker et system på nettstedet ditt som trenger cron-jobber som kjører mot en bestemt URL, kan du ikke bare legge inn URL-en som en kommando i cron-jobben, men du må bruke kommandoenwget . Dette forteller serveren om å besøke URL-en når cron-jobben kjører, akkurat som om du hadde surfet til den selv via en nettleser. Så du skriver inn kommandoen som følger:

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

erstattehttps://www.mindomän.se/kommandot mot den fullstendige adressen som er bla gjennom for å kjøre jobben. Ikke glem å beholde anførselstegnene, ellers er det stor risiko for at det ikke fungerer.

Administrer utdata

Du kan velge å få tilsendt en mail hver gang cron-jobben kjøres, dette kan være bra om du skriver ut info om for eksempel om jobben ble utført riktig eller ikke. Det kan også være bra for feilsøkingsformål, hvis cron-jobben ikke fungerer som du skal, kan du få verdifulle feilmeldinger på den måten. Du må imidlertid fjerne «> /dev/null 2>&1» for at det skal fungere slik at det i stedet ser slik ut:

/etc/cl.selector/php -q /home/dittbrukernavn/sti_til_skriptet.php

Da kan du i feltenE-post skriv inn e-postadressen du vil at e-posten skal sendes til.

MERK FØLGENDE! Hvis du skal kjørewget med en cron-jobb og ikke vil at noen utdata skal genereres, må 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-jobber

Et problem som ofte dukker opp er at du ikke vet nøyaktig hvor lang tid cron-jobben trenger å løpe. For eksempel. hvis du har en cron-jobb som fullføres på tre minutter og den kjøres hvert femte minutt. Det er ingen problemer, da rekker den alltid å kjøre ferdig før den starter opp igjen. Men hva om det går hvert femte minutt, men noen ganger tar det sju minutter å fullføre. Da vil cron-jobben rekke å kjøre en gang til før forrige kjøring er ferdig. Dette kan forårsake alle slags problemer og er noe vi ønsker å unngå.

Det finnes imidlertid en løsning, og det er Flock. Flock oppretter en låsefil når cron-jobben kjøres, hvis den låsefilen fortsatt er der ved neste kjøring, vil ikke kommandoen din bli utført. Når cron-jobben er ferdig, vil låsefilen forsvinne.

Du kan bruke Flock f.eks. som dette:

/usr/bin/flock -w 1 /tmp/cron.lock /etc/cl.selector/php -q /home/ditt brukernavn/sti_til_skriptet.php

/usr/bin/flock er banen til Flock binær og/tmp/cron.lock er banen til låsefilen, ikke noe av dette må endres. Alt etter låsefilen er det du vil kjøre med cron-jobben, så selvfølgelig må du tilpasse det til dine behov.

Was this article helpful?

Related Articles