Cron-jobber

– Resultater etter prøv og feil metoden.
Å kjøre cron-jobber er et spennende skritt videre fra å kun scripte for kode som trigges av brukeres aktivitet. Med cron-jobber kan prosesser kjøres automatisk på tidspunkt etter dine preferanser.

For orden skyld;
jeg har har et webhotell hos subsys.no. Cronjobber er en tjeneste som sjeldent kommer som standard hos webhotelltilbydere.

Å sette opp cronjobber fordrer at du kan logge deg inn på serveren via kommandolinjen (SSH), og videre redigere innstillingene for oppsettet i terminalen. For meg var det ikke intuitivt hvordan dette skulle gjøres i praksis, så her er hvordan jeg gjorde det hos subsys.

Koble til med SSH.

ssh -L 8888:server10.subsys.no:3306 brukernavn@server10.subsys.no

Kvitter med passord.

Så skriver du inn crontab -e

[brukernavn@server10 ~/mevi]$ crontab -e

-e står for «edit», du kan lese mer om handlingsrommet ditt her.

Hos subsys.no kjører de freeBSD, og der åpnes contab-filen i en «editor» i terminalen, denne heter nano(?). Du kan skrive inn tekst i filen (som er helt blank i utgangspunktet og som ikke vises/finnes via en ftp-klient), lagre, bla, osv. Hva du kan gjøre listes under det som i første omgang er en helt hvit terminal.

Rediger filen etter mønsteret «alle» guider for crontab gir, du kan f.eks. ta wikipedias tekst om saken som utgangspunkt.

$HOME fungerer fint i stede for å skrive inn hele adressen som er noe slikt som home users  brukernavn

$HOME fungerer fint i stede for å skrive inn hele adressen som er noe slikt som /home/users/brukernavn/.

Her er et eksempel på mine redigeringer:

MAILTO=gjett@stavelin.com
30 * * * * $HOME/pythonscript/python.py
0 0 * * * $HOME/phpscript/phpfil.php

MAILTO er en glimrende sak som sender deg en rapport på mail hver gang oppgaven utføres. Den er særlig nyttig når du setter dette opp for første gang, for å sjekke at ting fungerer som det skal, event hva som ikke fungerer.

Den første oppgaven jeg satt opp var å kjøre et pythonscript. Husk

#!/usr/local/bin/python

i starten av filen, slik at scriptet vil kjøre. Husk også å sette rettighetene på filen slik at den blir kjørbar (executable), med

chmod +x filnavn.py

Slike ting avslører feilmeldingene som jeg fikk på mail fram MAILTO-biten.

Når det kommer til tidsaspektene hvor når disse kommandoene skal gå av, så finner du også mye dokumentasjon rundt om. Selv hadde jeg en hvis glede av denne crontab kalkulatoren. Kodene jeg bruker i eksemplet over leser du slik:
30 * * * * betyr det 30. minuttet, hver time, hver dag, hver måned, alle ukedager. aka hver eneste time, 30 minutter over hel. Altså 24 jobber i døgnet.
0 0 * * * betyr det 0. minuttet, den 0. timen hver dag, hver måned, alle ukedager. aka første minutt den første timen i døgnet. Altså ved midnatt hvert døgn.

Håper dette er nyttig for noen, det hadde vært det for meg for noen dager siden.