Cron ja crontab: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Ukaldaru (talk | contribs)
Ttanav (talk | contribs)
 
(12 intermediate revisions by one other user not shown)
Line 1: Line 1:
Autor: Urmas Kaldaru, AK32
Autor: Urmas Kaldaru, AK32


Cron on UNIX-i utiliit, mis võimaldab automaatselt käivitada programme regulaarsete ajavahemike tagant. Selleks kasutatakse cron daemonit. Crontab on fail, mille sees on defineeritud käivitatavad programmid ja ajakava.
'''Cron''' on UNIX-i utiliit, mis võimaldab cron deamoni abil automaatselt käivitada programme kindlate ajavahemike järel.<br />
'''Crontab''' on fail, mille sees on defineeritud käivitatavad programmid ja ajakava.  


==Crontab piirangud==
==Crontab piirangud==
Line 9: Line 10:
==Crontab käsud==
==Crontab käsud==


export EDITOR=nano - Määratakse redaktor, millega avatakse crontab fail
<pre>
<pre>
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 -e    Redigeeritakse kasutaja crontab faili või luuakse uus, kui faili ei eksisteeri.
crontab -l    Kuvatakse kasutaja crontab fail.
crontab -l    Kuvatakse kasutaja crontab fail.
Line 41: Line 43:
  30 18 * * * rm /home/someuser/tmp/*
  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  https://help.ubuntu.com/community/CronHowto]


[[Category:Operatsioonisüsteemide administreerimine ja sidumine]]
[[Category:Operatsioonisüsteemide administreerimine ja sidumine]]

Latest revision as of 16:05, 4 February 2011

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