Cron ja crontab

From ICO wiki
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Autor: Urmas Kaldaru, AK32

Cron on UNIX-i utiliit, mis võimaldab cron deamoni abil automaatselt käivitada programme kindlate ajavahemike järel.
Crontab on fail, mille sees on defineeritud käivitatavad programmid ja ajakava.

Crontab piirangud

Võite kasutada crontab-i, kui teie kasutajanimi asub failis /usr/lib/cron/cron.allow. Kui seda faili ei ole olemas, siis saate kasutada crontab-i, kui teie nimi ei ole failis /usr/lib/cron/cron.deny. Kui fail cron.deny eksisteerib ja on tühi, siis võivad kõik kasutajad kasutada crontab-i. Kui mõlemad failid on olemas, siis ainult root kasutaja saab kasutada crontab-i. Lubamise ja keelamise failis on üks kasutaja rea kohta.

Crontab käsud

export EDITOR=nano    Määratakse redaktor, millega avatakse crontab fail

crontab -e    Redigeeritakse kasutaja crontab faili või luuakse uus, kui faili ei eksisteeri.
crontab -l    Kuvatakse kasutaja crontab fail.
crontab -r    Eemaldatakase kasutaja crontab fail.
crontab -v    Näidatakse viimase redigeerimise aeg.

Crontab fail

Crontab failis on 5 välja täpsustamaks intervalli nädalapäeva, kuupäeva ja kellaaega, millele järgneb käivitatav käsk.

*  *  *  *  *   käivitatav käsk
-  -  -  -  -
|  |  |  |  |
|  |  |  |  +-- nädalapäev (0 - 6) (pühapäev=0)
|  |  |  +----- kuu (1 - 12)
|  |  +-------- kuupäev (1 - 31)
|  +----------- tund (0 - 23)
+-------------- minut (0 - 59)

* märgiga valitakse kõik väärtused, mis saavad olla sellel väljal.

Välja väärtus võib olla * või nimekiri võimalikest väärtustest, mis on eraldatud komaga. Elemendi võimalik väärtus võib olla eespoolt näidatud vahemikust või väärtuste vahemik, eraldatuna sidekriipsuga. Kordust saab määrata kaldkriipsuga / (kordus maskiga /2 - kordus iga 2 minuti tagant või /10 - kordus iga 10 minuti tagant ei tööta kõikide operatsioonisüsteemidega).

Crontab näited

Allolev rida kustutab kõik failid kaustast /home/someuser/tmp iga päev kell 18:30.

30 18 * * * rm /home/someuser/tmp/*

Mitme käsu järjestikuliseks käivitamiseks eraldatakse need && märkidega:

30 18 * * * rm /home/someuser/tmp/* && /usr/bin/updatedb


Veel näiteid erinevatest aegadest:

30    0   1        1,6,12  *     – kell 00:30 esimesel jaanuaril, juunil ja detsembril.
0     20  *        10      1-5   – kell 20:00 oktoobris esmaspäevast reedeni.
0     0   1,10,15  *       *     – keskööl, kuupäevadel 1, 10 ja 15.
5,10  0   10       *       1     – kell 00:05 ja 00:10 iga kuu, kui on esmaspäev ja 10 kuupäev.
*/10   *   *        *       *     – Käivitatakse iga 10 minuti tagant.


Crontab failis võib kasutada ka spetsiaalstringe:

@reboot     Käivitatakse korra peale arvuti käivitamist.
@yearly     Käivitatakse korra aastas, "0 0 1 1 *".
@annually   Sama mis @yearly.
@monthly    Käivitatakse korra kuus, "0 0 1 * *".
@weekly     Käivitatakse korra nädalas, "0 0 * * 0".
@daily      Käivitatakse korra päevas, "0 0 * * *".
@midnight   Sama mis @daily.
@hourly     Käivitatakse korra tunnis, "0 * * * *".

Kasutamine:

@reboot /path/to/execuable

Tulemuste logimine

Käivitatava programmi tulemusi saab saata logifaili või keelata igasugune tulemuste kuvamine:

30 18 * * * rm /home/someuser/tmp/* > /home/someuser/cronlogs/clean_tmp_dir.log
30 18 * * * rm /home/someuser/tmp/* >> /dev/null

Graafiline kasutajaliides (Ubuntu)

Graafiline kasutajaliides tuleb installeerida käsuga:

sudo apt-get install gnome-schedule

Graafilise kasutajaliidese saab käivitada menüüst Applications --> System Tools --> Scheduled tasks.

Spikker

Rohkem informatsiooni saab man lehelt:

man crontab

Lingid

https://help.ubuntu.com/community/CronHowto