Bruke crontab

Den vanligste måten å kjøre oppgave eller prosesser i bakgrunnen på er å benytte en crontab. En crontab er en liste over kommandoer, prosesser som skal kjøre til faste tidspunkter, eller med faste intervaller, og kan benyttes til å automatisere maskinrelaterte oppgaver.

For å redigere innholdet i crontab på din konto må du logge på kontoen med SSH.

Liste innholdet i crontab:

crontab -l

Redigere innholdet i crontab:

crontab -e

Første gang når du redigerer crontab på kontoen din må du velge hvilket redigeringsverktøy du skal benytte. Dersom du ikke er en erfaren Linux-bruker anbefaler vi at du velger nano i listen over tilgjengelige redigeringsverktøy.

Fjerne crontab:

crontab -r

Crontab syntax

Du må oppgi når en kommando skal kjøres, og hvilken kommando som skal kjøres:

* * * * * * kommando
| | | | | |
| | | | | +-- Year (1900-3000)
| | | | +---- Day of the Week (1-7, 1 standing for Monday)
| | | +------ Month of the Year (1-12)
| | +-------- Day of the Month (1-31)
| +---------- Hour (0-23)
+------------ Minute (0-59)

Oppgi stjerne for "alle".

Eksempler:

* * * * * *                         Each minute
45 17 7 6 * *                       Every  year, on June 7th at 17:45

Det finnes også mer grafiske verktøy som forenkler tidsangivelsen, se https://crontab-generator.org/

Oppgi kommandoer i crontab

Det er svært viktig at du tester kommandoen som du ønsker å legge inn i crontab i kommandolinjen på forhånd. Sjekk at kommandoen returnerer resultatet du ønsker, og tenk på at du skal kjøre jobben til et fast intervall. NB! Dersom du skal kjøre et PHP-script i en crontab må du oppgi huske på å oppgi php-kommandoen foran path til scriptet du ønsker å kjøre.

* * * * * /usr/bin/php $HOME/www/path/to/php/file/you/want/to/run.php

 Logging og error-logging

Det er en fordel å gjøre redirect av stdout og stderr for det som kjøres fra cron. Det gjør du ved å legge til følgende:

> $HOME/www/path/to/log/file/cron.log 2>&1

Eksempelet over blir da slik:

* * * * * /usr/bin/php $HOME/www/path/to/php/file/you/want/to/run.php > $HOME/www/path/to/log/file/cron.log 2>&1

 

Har du flere spørsmål? Send oss en henvendelse