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