tigtools

Vysvětlení cron výrazů

Zadejte cron plán s pěti poli a zjistěte, co znamená a kdy se příště spustí. Vše se počítá ve vašem prohlížeči.

Běží ve vašem prohlížeči Bez registrace

Pět polí: minuta, hodina, den v měsíci, měsíc, den v týdnu. Fungují také makra jako @daily.

Běžné plány

Význam

Každých 15 minut, mezi 09:00 a 17:59, v pondělí až pátek.

Pole

Minuta
*/15
Hodina
9-17
Den v měsíci
*
Měsíc
*
Den v týdnu
1-5
Časové pásmo

Dalších 10 spuštění

    Jak používat

    1. Zadejte nebo vložte cron výraz, případně vyberte některý z běžných plánů.
    2. Přečtěte si význam v běžném jazyce. Neplatná pole jsou označena s důvodem.
    3. Zkontrolujte dalších 10 časů spuštění zobrazených ve vašem místním časovém pásmu. Pokud server běží v UTC, přepněte na UTC.
    4. Časy spuštění zkopírujte pro sdílení nebo upravujte výraz, dokud plán nebude odpovídat tomu, co potřebujete.

    Jak to funguje

    Standardní výraz cron, jaký používá crontab v Linuxu (Vixie cron a cronie) a mnoho plánovačů CI a hostingu, má pět polí oddělených mezerami: minuta (0–59), hodina (0–23), den v měsíci (1–31), měsíc (1–12 nebo JAN–DEC) a den v týdnu (0–7 nebo SUN–SAT, kde 0 i 7 znamenají neděli). Každé pole přijímá * pro každou hodnotu, jednu hodnotu, rozsah jako 1-5, seznam jako 1,15,30 a krok jako */15 (každá 15. hodnota) nebo 9-17/2 (každá druhá hodina od 9 do 17). Názvy nerozlišují malá a velká písmena. Zkratky @yearly (nebo @annually), @monthly, @weekly, @daily (nebo @midnight) a @hourly znamenají 0 0 1 1 *, 0 0 1 * *, 0 0 * * 0, 0 0 * * * a 0 * * * *.

    Pole den v měsíci a den v týdnu se řídí pravidlem, které mnoho lidí překvapí. Pokud některé z těchto polí začíná znakem *, musí den vyhovět oběma polím. Pokud jsou obě pole omezena, den odpovídá, když vyhoví kterémukoli z nich: 0 0 13 * 5 běží 13. den každého měsíce a také každý pátek, nejen v pátek třináctého. Protože rozhoduje, zda pole začíná znakem *, krok jako */2 se také počítá jako neomezený. To odpovídá Vixie cron a cronie; některé jiné plánovače se chovají odlišně.

    Časy dalších spuštění se počítají v časovém pásmu vašeho prohlížeče nebo v UTC, které používá většina serverů a cloudových plánovačů. Cron sám používá časové pásmo počítače, na kterém běží. Při změnách letního času se skutečné démony cron liší; tento nástroj vynechává místní časy, které při posunu hodin dopředu neexistují, a opakující se hodinu uvádí jen jednou. Rozšířené syntaxe nejsou podporovány: šesti- nebo sedmipolní výrazy Quartz se sekundami nebo roky a speciální znaky ?, L, W a #.

    Příklady

    Kontrola stavu v pracovní době

    */15 9-17 * * 1-5 znamená každých 15 minut mezi 09:00 a 17:59, od pondělí do pátku. Poslední spuštění každý den je v 17:45.

    Noční záloha

    30 2 * * * běží každý den v 02:30. Pokud server používá UTC a vy jste v New Yorku, seznam dalších spuštění v režimu UTC ukazuje časy, které server skutečně použije.

    Zrádná pole dne

    Výraz 0 9 1 * 1 vypadá jako „9:00 prvního dne v měsíci, pokud je pondělí“, ale ve skutečnosti se spouští v 09:00 prvního dne každého měsíce a také každé pondělí. Chcete-li úlohu spouštět pouze první pondělí, naplánujte 0 9 1-7 * * a den v týdnu ověřte uvnitř skriptu.

    Časté dotazy

    Co znamená */5 v cronu?

    Znamená to každou pátou hodnotu pole, počínaje nejnižší hodnotou. V poli minut se */5 spouští v minutách 0, 5, 10 … 55. V poli hodin se */5 spouští v 0, 5, 10, 15 a 20, takže od 20:00 do půlnoci je mezera čtyři hodiny, ne pět.

    Proč se moje úloha spouští ve více dnech, než jsem očekával?

    Když jsou omezena obě pole – den v měsíci a den v týdnu – cron spouští úlohu ve dnech, které odpovídají alespoň jednomu z nich. Například 0 0 15 * 1 se spouští 15. dne v měsíci a každé pondělí. Nastavte jedno z obou polí na *, aby platilo pouze to druhé.

    Které časové pásmo cron používá?

    Časové pásmo systému serveru, na kterém běží démon cron, pokud crontab nenastaví CRON_TZ nebo TZ (podporuje cronie). Cloudové plánovače často standardně používají UTC. Pomocí přepínače UTC zobrazíte časy, které by použil server v UTC.

    Mohu použít sekundy nebo pole roku?

    Ne ve standardním cronu, který má rozlišení jedné minuty a pět polí. Formáty se šesti a sedmi poli se sekundami a roky patří knihovnám Quartz, Spring a podobným a tento nástroj je nepodporuje.

    Znamená 0, nebo 7 neděli?

    Obě. V poli dne v týdnu znamenají 0 i 7 neděli, 1 pondělí a 6 sobotu. Můžete také psát třípísmenné názvy SUN až SAT.

    Soukromí

    Výraz se analyzuje a časy spuštění se počítají ve vašem prohlížeči. Nic z toho, co zadáte, se nenahrává, neukládá ani nezahrnuje do analytiky.