CRON výraz
CRON výraz můžete použít při sestavování podmínky spuštění. Nejčastěji se používají pro opakované spouštění. Jedná se o řetězec sestávající se z 6 nebo 7 částí, které reprezentují jednotlivé hodnoty časového plánu. Tato pole jsou oddělena mezerou a mohou obsahovat libovolnou z povolených hodnot včetně jejich kombinací.
CRON výraz může být jednoduchý jako * * * * ? *, ale také komplexní jako 0/5 14,18,3-39,52 * ? JAN,MAR,SEP MON-FRI 2012-2020
Seznam hodnot, které můžete při sestavování CRON výrazu použít:
Pole |
Vyžadováno |
Hodnota |
Povolené speciální znaky |
---|---|---|---|
Sekundy |
Ano |
0-59 |
, - * / R |
Minuty |
Ano |
0-59 |
, - * / R |
Hodiny |
Ano |
0-23 |
, - * / R |
Den v měsíci |
Ano |
1-31 |
, - * / ? L W |
Měsíc |
Ano |
1-12 nebo JAN-DEC |
, - */ |
Den v týdnu |
Ano |
0-6 nebo SUN-SAT |
, - / ? L # |
Rok |
Ano |
1970-2099 |
, - * / |
Syntaxe cron výrazu je následující:
┌────────── Sekundy (0–59) │ ┌────────── Minuty (0–59) │ │ ┌────────── Hodiny (0–23) │ │ │ ┌────────── Den v měsíci (1–31) │ │ │ │ ┌────────── Měsíc (1–12 nebo JAN-DEC) │ │ │ │ │ ┌────────── Den v týdnu (0–6 nebo SUNSAT)(například 0 je stejné jako SUN) │ │ │ │ │ │ ┌────────── Rok │ │ │ │ │ │ │ * * * * * ? * |
•0 0 0 znamená půlnoc (0 sekund, 0 minut, 0 hodin).
•? (otazník) použijte pro hodnotu, kterou nemůžete definovat, protože jste ji již definovali v jiném poli (například den v měsíci nebo den v týdnu).
•* (hvězdička) představuje každý výskyt – tedy každou sekundu, minutu, hodinu, den v měsíci, den v týdnu, rok.
•SUN znamená neděle.
U názvů dnů v týdnů a měsíců se nerozlišuje velikost písmen. Příklad: MON se akceptujte stejně jako mon, i jan bude vyhodnocen stejně jako JAN. |
Speciální znaky:
Čárka (,)
Čárku použijte pro oddělení jednotlivých položek v seznamu. Příklad: použití "MON,WED,FRI" v šestém poli (den v týdnu) znamená pondělí, čtvrtek a pátek.
Spojovník (-)
Definuje rozsah. Například 2012-2020 znamená každý rok mezi 2012 a 2020, včetně.
Zástupný znak (*)
Použijte jako zástupný znak pro všechny přípustné hodnoty. Příklad: * v druhém poli znamená provedení každou minutu. Mějte na paměti, že zástupný znak nelze uplatnit v poli den v týdnu.
Otazník (?)
Při definování konkrétního dne musíte specifikovat, zda jde o den v měsíci nebo týdnu. Nelze kombinovat obě možnosti. Pokud definujete den v měsíci, v poli pro den v týdnu musíte použít ?, a opačně. Příklad: pokud chcete zajistit spuštění konkrétní den v měsíci, řekneme 10., ale nezáleží vám na tom, jaký je to den v týdnu, zadejte do čtvrtého pole (den v měsíci) hodnotu 10 a do šestého pole (den v týdnu) zadejte ? (otazník).
Hash (#)
Se používá pro definování "n-tého" dne v měsíci. Příklad: 4#3 v poli den v týdnu znamená třetí středu v čtvrtek (4.den = čtvrtek a #3 = 3. čtvrtek v měsíci). Pokud zadáte #5 a měsíc nemá tolik dní, podmínka se v daný měsíc neuplatní.
Lomítko (/)
Použijte pro inkrementování rozsahu (-). Příklad: 3-59/15 v druhém poli (minuty) představuje třetí minutu v hodině a následně každých dalších 15 minut.
Poslední (L)
Při použití v pátém poli (dnu v týdnu) můžete vytvořit specifickou konstrukci jako je například poslední pátek (5L) v daném měsíci. Zadáním L do pole den v měsíce definujete poslední den v měsíci. V případě ledna by se jednalo o 31. den, v únoru 28. den (pro nepřestupný rok).
Pracovní den v týdnu (W)
Znak W je možné použít v poli den v měsíci. Tento znak se používá pro zjištění nejbližšího pracovního dne (pondělí – pátek) k danému dni. Pokud do pole den v měsíci zadáte 15W, znamená to nejbližší pracovní den k 15. dni v měsíci. V případě, že 15. připadne na sobotu, podmínka se spustí v pátek 14. V případě, že 15. připadne na neděli, podmínka se spustí v pondělí 16. Nicméně, pokud zadáte 1W jako den v měsíci, a 1. bude sobota, podmínka se aktivuje až 3. v pondělí.
Znaky L a W můžete kombinovat v poli pro den v měsíci. Použitím hodnoty LW vyfiltrujete poslední pracovní den v měsíci.. |
Náhodně (R)
R představuje speciální znak ESET PROTECT CRON výrazu, pomocí kterého zajistíte provedení v náhodný čas. Například R 0 0 * * ? * znamená, že se podmínka spustí každý den v 00:00, ale v náhodnou sekundu (0-59).
Při definování intervalu připojení ESET Management Agenta doporučujeme používat náhodný interval pro zabránění připojení všech agentů k ESET PROTECT Serverve stejný čas. |
Níže uvádíme reálné příklady CRON výrazů:
CRON výraz |
Význam |
---|---|
0 0 12 * * ? * |
Spustí se každý den ve 12pm (v poledne). |
R 0 0 * * ? * |
Spustí každý den v 00:00, ale v náhodnou sekundu (0-59). |
R R R 15W * ? * |
Spustí se každý měsíc v 15. den v náhodný čas (sekundu, minutu, hodinu). V případě, že 15. připadne na sobotu, podmínka se spustí v pátek 14. V případě, že 15. připadne na neděli, podmínka se spustí v pondělí 16. |
0 15 10 * * ? 2016 |
Spustí se každý den v 10:15am po celý rok 2016. |
0 * 14 * * ? * |
Spustí se každou minutu mezi 2pm a 2:59pm, každý den. |
0 0/5 14 * * ? * |
Spustí se každých 5 minut mezi 2pm a 2:55pm, každý den. |
0 0/5 14,18 * * ? * |
Spustí se každých 5 minut mezi 2pm a 2:55pm, a každých 5 minut mezi 6pm a 6:55pm, každý den. |
0 0-5 14 * * ? * |
Spustí se každou minutu mezi 2pm a 2:05pm, každý den. |
0 10,44 14 ? 3 WED * |
Spustí se v 2:10pm a 2:44pm, každou středu v březnu. |
0 15 10 ? * MON-FRI * |
Spustí se v 10:15am v pondělí, úterý, středu, čtvrtek a pátek. |
0 15 10 15 * ? * |
Spustí se v 10:15am každý 15. den v měsíci. |
0 15 10 ? * 5L * |
Spustí se v 10:15am poslední pátek v měsíci. |
0 15 10 ? * 5L 2016-2020 |
Spustí se v 10:15am poslední pátek v měsíci v roce 2016, 2017, 2018, 2019 a 2020. |
0 15 10 ? * 5#3 * |
Spustí se v 10:15am třetí pátek v měsíci. |
0 0 * * * ? * |
Spustí se opakovaně každou hodinu. |