Cron ja crontab: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Ukaldaru (talk | contribs)
Ttanav (talk | contribs)
 
(20 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>
crontab -e    Redigeeritakse teie crontab faili või luuakse uus, kui seda ei eksisteeri.
export EDITOR=nano    Määratakse redaktor, millega avatakse crontab fail
crontab -l    Kuvatakse crontab fail.
 
crontab -r    Eemaldatakase 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 -v    Näidatakse viimase redigeerimise aeg.
</pre>
</pre>


==Crontab file==
==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.
Crontab failis on 5 välja täpsustamaks intervalli nädalapäeva, kuupäeva ja kellaaega, millele järgneb käivitatav käsk.
Line 30: Line 32:
|  +----------- tund (0 - 23)
|  +----------- tund (0 - 23)
+-------------- minut (0 - 59)
+-------------- minut (0 - 59)
* märgiga valitakse kõik väärtused, mis saavad olla sellel väljal.
</pre>
</pre>


* in the value field above means all legal values as in braces for that column.
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).
The value column can have a * or a list of elements separated by commas. An element is either a number in the ranges shown above or two numbers in the range separated by a hyphen (meaning an inclusive range).
 
Notes
==Crontab näited==
A. ) Repeat pattern like /2 for every 2 minutes or /10 for every 10 minutes is not supported by all operating systems. If you try to use it and crontab complains it is probably not supported.
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


B.) The specification of days can be made in two fields: month day and weekday. If both are specified in an entry, they are cumulative meaning both of the entries will get executed .
==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