Sintaksa cron izrazov
Cron izraz je pet polj, ki opisujejo, kdaj se nešto zažene. Vsako polje pove, katere vrednosti svoje enote so dovoljene, in oprava se zažene v vsaki minuti, kjer se vseh pet strinja. To je celi model: ni trajanja, ni »vsakih 90 minut« in nikjer se ne hrani naslednje stanje.
Polja se berejo levo v desno kot minuta, ura, dan v mesecu, mesec, dan v tednu. Primeri spodaj so tisti, po katerih ljudje res segajo, in vsak od njih pred gradnjo te strani obide svoj lastni cron parser te strani.
Zadnji razdelek navaja sintakso, ki izgleda kot cron vendar se tu ne sprejema: razširitve Quartza in Jenkinsa ter šestpolje z sekundami. Vredno je poznati, ker kopirani izraz, ki katere od njih uporablja, preprosto ne uspe.
Pet polj
7Cron vrstica je pet polj ločenih z razmakom, nato pa ukaz. Vsako polje mora biti prisotno; nobeno se ne sme izpustiti.
| Izraz | Obseg | Pomen |
|---|---|---|
| * * * * * | min hod dom mes dow | Pet polj v vrstnem redu: minuta, ura, dan v mesecu, mesec, dan v tednuPet zvezdic pomeni vsako minuto vsakega dne — najdove prvi možen izraz. |
| minute | 0-59 | Prvo polje |
| hour | 0-23 | Drugo polje, v 24-urnem formatu |
| day of month | 1-31 | Tretje poljeDan, ki v danem mesecu ne obstaja, se preprosto preskoči — 31 se zažene sedemkrat na leto, ne dvanajstkrat. |
| month | 1-12 | Četrto polje |
| day of week | 0-7 | Peto polje, nedelja prvoNedelja je 0 in 7 — zato se obseg konča s sedmico namesto s šestko. |
| 0 5 13 * 5 | Ko sta omejena obe polji dni, se cron zažene na katerikoli — ne na obehTo se zažene 13. in tudi vsak petek, zato ni »Petek 13.«. To je edino pravilo crona, ki preseneti vse. |
Operatorji
10Isti štiri operatorji delajo v vsakem polju; le obseg števil, ki jih sprejmejo, se spremeni.
| Izraz | Obseg | Pomen |
|---|---|---|
| * | Vsaka vrednost, ki jo polje dovoli | |
| 1,15,30 | Seznam posameznih vrednosti | |
| 9-17 | Obseg, vključena oba konca | |
| */15 | Vsaka n-ta vrednost preko celega polja*/15 v polju minut pomeni :00, :15, :30 in :45 — šteje se od dna obsega, ne od sedaj. | |
| 9-17/2 | Vsaka n-ta vrednost znotraj obsega | |
| 5/10 | Vsaka n-ta vrednost od začetne točke do konca polja | |
| 0,30 9-17 * * 1-5 | Operatorji se prosto kombinirajo v kateremkoli poljuNa polovico in polne ure, med devetimi in petimi, od ponedeljka do petka. | |
| JAN-DEC | 1-12 | Imena mesecev, tri črke, neobčutljivo na velike črke |
| SUN-SAT | 0-6 | Imena dni, tri črke, neobčutljivo na velike črke |
| 7 | 0 | Nedelja, napisana drugače |
Krajevne okrajšave
7Sedem imen, ki predstavljajo celoten izraz. Predstavljajo lastnost oblike crontab, ne slovnico — prikrajšek, ki bere cron nize, jih ne sme nujno sprejeti.
| Izraz | Obseg | Pomen |
|---|---|---|
| @hourly | 0 * * * * | Na začetku vsake ure |
| @daily | 0 0 * * * | Enkrat na dan ob polnoči |
| @midnight | 0 0 * * * | Isto kot @daily |
| @weekly | 0 0 * * 0 | Enkrat na teden, nedelja ob polnoči |
| @monthly | 0 0 1 * * | Prvi v mesecu ob polnoči |
| @yearly | 0 0 1 1 * | Prvega januarja ob polnoči |
| @annually | 0 0 1 1 * | Isto kot @yearly |
Primeri
14Preberite ga od desne v levo, ko neha smisel: najbolj grobo polje je na desni in odloča, katere dni sploh bolj fina polja preverja.
| Izraz | Obseg | Pomen |
|---|---|---|
| * * * * * | Vsako minuto | |
| */5 * * * * | Vsako pet minut | |
| 0 * * * * | Vsako uro, na začetku ure | |
| 0,30 * * * * | Vsako pol ure | |
| 0 3 * * * | Vsak dan ob 03:00 | |
| 0 9,17 * * * | Dvakrat na dan, ob 09:00 in 17:00 | |
| */15 9-17 * * 1-5 | Vsako četrt ure med delovnim časom v delovne dni | |
| 0 8 * * 1-5 | Delovni dnevi ob 08:00 | |
| 0 10 * * 6,0 | Sobota in nedelja ob 10:00 | |
| 30 7 * * MON | Ponedeljek ob 07:30 | |
| 0 0 1 * * | Polnoč prvega dne vsakega meseca | |
| 0 0 28-31 * * | Vsak dan v zadnji части mesecaObičajni cron ne pozna »zadnjega dne meseca«. Ta se zažene do štirikrat; običajno rešitev je skript, ki preveri datum in se kmalu zaustavi. | |
| 0 0 1 1,4,7,10 * | Polnoč prvega dne vsakega četrtletja | |
| 0 0 1 1 * | Enkrat letno, ob začetku 1. januarja |
Razširitve, ki jih ta stran ne sprejema
6Dodajajo jih Quartz, Jenkins in nekateri oblačni prikrajšekniki. Navedeni so, da jih spoznate v tujega crontaba — parser na tej strani nobenega od njih ne sprejema, niti cron, ki se dobavi z Linuxom.
| Izraz | Obseg | Pomen |
|---|---|---|
| ? | »Brez specifične vrednosti« v polju dneva, ki ga že omejuje drugo | |
| L | Zadnji dan meseca ali zadnji dani dan v tednu | |
| 15W | Delovni dan najbližji 15. | |
| FRI#3 | Tretji petek v mesecu | |
| */30 * * * * * | Šesto polje za sekunde, spredajŠest polj, ne pet. Quartz in več knjižnic to obliko uporabljata; datoteka crontab pa ne. | |
| @reboot | Zaženi enkrat pri zagonu strojaResnično v crontabasu, vendar to ni urnik — ni naslednjega zagona, ki bi se dal izračunati, zato ga parser tukaj zavrne. |