Search


print PDF
Crontab - Komentojen ajastaminen

Unix-pohjaisissa käyttöjärjestelmissä, kuten Linuxissa, komentojen ajastaminen tehdään crontab-ohjelman avulla. Tehtävät suoritetaan, kun määritelty aika ja päivämäärä täsmäävät nykyhetkeen. Administraattori voi ajastaa esimerkiksi varmuuskopioinnin, palvelimen monitoroinnin tai haluamansa skriptin...

Konfiguroiminen

Pääkonfigurointi-tiedosto /etc/crontab sisältää seuraavat tiedot:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

* * * * * käyttäjä komento
│ │ │ │ └──── viikonpäivä (0–7) (sunnuntai = 0 tai 7)
│ │ │ └────── kuukausi (1–12)
│ │ └──────── päivä (1–31)
│ └────────── tunnit (0–23)
└──────────── minuutit (0–59)


Neljä ensimmäistä riviä määrittelevät suoritettavien cron-tehtävien ympäristön. SHELL-määrittää käytettävän shellin, joka on tässä tapauksessa bash. PATH määrittää polun suoritettaviin komentoihin. MAILTO määrittää lähettäjän kenelle suoritetuista tehtävistä lähetetään sähköpostia. Jos se on tyhjä, sähköpostia ei lähetetä. HOME määrittää komentojen tai skriptien käyttämän kotikansion.

Ennen komentoa määritellään sen suorittamishetki. Tähti (*) toimii jokaisena arvona. Jos suoritettava kuukausi on määritelty tähdellä, komento suoritetaan jokaisena kuukautena, ottaen kuitenkin huomioon myös muut arvot.

Viiva (-) kahden numeron välissä tarkoittaa kumpaakin numeroa, sekä niiden välillä olevia lukuja. Esimerkiksi 1-4 tarkoittaa lukuja 1, 2, 3 ja 4. Numerot voi erotella pilkun (,) avulla. Esimerkiksi 1, 2, 4 tarkoittaa lukuja 1, 2 ja 4.

Kauttaviivaa (/) voidaan käyttää, jos halutaan suorittaa toiminto esimerkiksi kerran kolmessa kuukaudessa (*/3).

Esimerkkejä:

^
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

1 * * * * root /polku/komentoon # Tämä komento suoritetaan tunneittain, ensimmäisellä minuutilla
20 4 * * * root /polku/komentoon # Tämä komento suoritetaan päivittäin, kello 4.20
20 4 * * 0 root /polku/komentoon # Tämä komento suoritetaan viikoittain, kello 4.20 sunnuntaina tai maanantaina
20 4 1 * * root /polku/komentoon # Tämä komento suoritetaan kuukausittain, kello 4.20 jokaisen kuukauden ensimmäisenä päivänä


Skriptin ajastaminen

Ensiksi sinun pitää varmistaa, että skripti voidaan suorittaa komentorivillä. Jos se on PHP-skripti, aseta sen ensimmäiselle riville #!/usr/local/bin/php. Jos se on Perl-skripti, aseta sen ensimmäiselle riville #!/usr/bin/perl. Jos se on shell-skripti, aseta sen ensimmäiselle riville #!/bin/bash. Varmista myös, että käyttäjällä on suoritusoikeudet kyseiseen skriptiin:

lauri@ovh:~$ ls -la
-rwx------ 1 lauri lauri 294 2010-04-12 12:14 skripti


Suoritusoikeuden voi puuttuessa lisätä esimerkiksi seuraavasti:

lauri@ovh:~$ sudo chmod 700 skripti


Skriptin toimivuus kannattaa testata komentorivillä ennen sen lisäämistä croniin:

lauri@ovh:~$ ./skripti