Analyzér cron výrazů

Náš analyzér cron výrazů převádí cron plány do srozumitelného jazyka a vypočítává nadcházející časy spuštění. Vložte libovolný cron výraz a okamžitě uvidíte, co znamená, kdy se spustí příště a zda je syntaxe platná. Podporuje standardní 5polový formát crontab (minuta, hodina, den, měsíc, den v týdnu), rozšířený 6polový formát se sekundami a běžné předvolby jako @daily, @hourly, @weekly. Veškeré zpracování probíhá ve vašem prohlížeči.

star 4.9
auto_awesome AI
New

Analyzér cronu calculator

Presets:
*/5 * * * *
MIN HOUR DOM MON DOW
0-59 0-23 1-31 1-12 0-6
translate
Human Readable
Every 5 minutes

Field Breakdown

Next 10 Execution Times

lightbulb Tips

  • •*/5 = every 5, using the step operator
  • •0 = Sunday, 1 = Monday ... 6 = Saturday
  • •@daily, @hourly, @weekly are handy shortcuts
  • •Always test cron before deploying

How to Use the Analyzér cronu

edit

Zadejte výraz

Napište nebo vložte cron výraz (5 nebo 6 polí). Pro běžné plány využijte předvolby.

translate

Přečtěte si popis

Podívejte se na lidsky čitelný překlad toho, co váš cron výraz dělá.

schedule

Zkontrolujte příští spuštění

Zobrazit příštích 10 časů spuštění a ověřit, že je váš plán správný.

build

Sestavit výraz

Použijte interaktivní nástroj pro vytvoření nového cron výrazu od základu.

The Formula

Cron výraz je definice plánu pomocí 5 polí oddělených mezerou: minuta (0-59), hodina (0-23), den v měsíci (1-31), měsíc (1-12) a den v týdnu (0-6, přičemž 0=neděle). Každé pole může používat zástupné znaky (*), rozsahy (1-5), seznamy (1,3,5) a krokové hodnoty (*/5). Některé systémy podporují na začátku 6. pole (sekundy).

┌───────────── minute (0-59) │ ┌───────────── hour (0-23) │ │ ┌───────────── day of month (1-31) │ │ │ ┌───────────── month (1-12) │ │ │ │ ┌───────────── day of week (0-6, Sun=0) * * * * *

lightbulb Variables Explained

  • * Libovolná hodnota (zástupný znak)
  • , Oddělovač seznamu hodnot (např. 1,3,5)
  • - Rozsah hodnot (např. 1-5)
  • / Krokové hodnoty (např. */5 = každých 5)

tips_and_updates Pro Tips

1

*/5 * * * * znamená každých 5 minut — lomítko / je krok

2

0 0 * * 0 se spouští o půlnoci každou neděli (den 0 = neděle ve většině systémů)

3

Použijte @daily, @hourly, @weekly, @monthly jako zkratky pro běžné plány

4

Den v týdnu: 0=Ne, 1=Po, 2=Út, 3=St, 4=Čt, 5=Pá, 6=So

5

Ve standardním cronu nemohou být den v měsíci a den v týdnu specifické současně

6

Názvy měsíců (JAN-DEC) a dnů (SUN-SAT) fungují v mnoha implementacích cronu

7

Cron výrazy před nasazením vždy otestujte — chyby o jedničku jsou běžné

Náš bezplatný analyzátor cron výrazů převádí cron plány na lidsky čitelný text a ukazuje nadcházející časy spuštění. Ověřte syntaxi cronu, pochopte jednotlivá pole a zkontrolujte své plány před nasazením. Podporuje standardní 5polové i rozšířené 6polové formáty cronu.

Analyzátor cron výrazů – Převod cronu do angličtiny

Vložte libovolný cron výraz a okamžitě uvidíte, co znamená v prostém jazyce. Náš analyzátor rozebírá každé pole (minutu, hodinu, den, měsíc, den v týdnu) a vysvětluje rozvrh.

Podporuje:

  • zástupné znaky (*)
  • rozsahy (1-5)
  • seznamy (1,3,5)
  • kroky (*/5)
  • pojmenované hodnoty (MON-FRI, JAN-DEC)

Kalkulačka cron plánu – Časy příštího spuštění

Podívejte se přesně, kdy se vaše cron úloha spustí příště. Naše kalkulačka ukazuje příštích 10 časů spuštění s daty a časovými razítky, takže si můžete před nasazením do produkce ověřit, že je váš plán správný.

Už nikdy Nasaďte nesprávný cron plán.

Jak funguje cron výraz?

Cron výraz funguje tak, že porovnává aktuální čas se vzorem pěti polí oddělených mezerou:

  • minuta
  • hodina
  • den v měsíci
  • měsíc
  • den v týdnu

Daemon cronu (crond) se probouzí každou minutu a spouští všechny úlohy, jejichž všechna pole odpovídají aktuálnímu času, jak je popsáno ve specifikaci POSIX crontab a v manuálové stránce Linuxu crontab(5). Každé pole akceptuje zástupný znak (*) pro "libovolnou hodnotu" plus rozsahy, seznamy a operátory kroků.

Vixie cron, široce nasazená implementace ve většině distribucí Linuxu, se chová tímto způsobem. Pochopení toho, že cron vyhodnocuje stav minuta po minutě, vysvětluje, proč cron nemůže přirozeně plánovat úlohy v intervalech kratších než jedna minuta bez pole sekund.

Co znamená pět polí cronu?

Pět polí cronu, čteno zleva doprava, je:

  • minuta (0-59)
  • hodina (0-23)
  • den v měsíci (1-31)
  • měsíc (1-12)
  • den v týdnu (0-6, kde 0 je neděle)

Toto uspořádání je definováno standardem POSIX (IEEE Std 1003.1) a je zdokumentováno v manuálové stránce crontab(5) spravované na man7.org. Pole měsíce a dne v týdnu přijímají ve většině implementací také třípísmenné zkratky jako JAN až DEC a SUN až SAT.

Klíčové pravidlo POSIX: pokud jsou omezeny jak den v měsíci, tak den v týdnu (ani jedno není *), cron spustí úlohu, pokud odpovídá kterékoli pole, nikoli nutně obě. Toto chování NEBO překvapuje mnoho vývojářů a způsobuje nečekaná dodatečná spuštění.

Jak používat operátory kroku, rozsahu a seznamu v cronu

Operátory kroku, rozsahu a seznamu v cronu vám umožňují vyjádřit složité plány kompaktně.

  • Rozsah jako 1-5 znamená po sobě jdoucí hodnoty (v poli dne v týdnu pondělí až pátek).
  • Seznam jako 1,3,5 odpovídá pouze těmto konkrétním hodnotám.
  • Krok jako */15 v poli minut znamená "každých 15 minut" (0, 15, 30, 45) a kroky lze kombinovat s rozsahy, jako například 0-30/10.

Tyto operátory jsou zdokumentovány v manuálu crontab(5) a ve zdrojovém kódu Vixie cron. Například */5 9-17 * * 1-5 se spouští každých pět minut mezi 9. a 17. hodinou v pracovní dny.

Kombinování operátorů udržuje řádky crontabu čitelné a zároveň pokrývá složitá opakující se okna.

Co jsou speciální řetězce cronu jako @daily a @reboot?

Speciální řetězce cronu jsou pojmenované zkratky, které pro běžné plány nahrazují syntaxi pěti polí.

  • @yearly (nebo @annually) odpovídá 0 0 1 1 *
  • @monthly odpovídá 0 0 1 * *
  • @weekly odpovídá 0 0 * * 0
  • @daily (nebo @midnight) odpovídá 0 0 * * *
  • @hourly odpovídá 0 * * * *

Těmito aliasy disponuje Vixie cron a jsou zdokumentovány v manuálové stránce crontab(5) na man7.org. Speciální případ, @reboot, spustí úlohu jednou při startu systému namísto plánu podle hodin.

Všimněte si, že ne každá implementace cronu tyto řetězce podporuje; POSIX cron je nevyžaduje, proto před spoléháním se na ně v přenositelných skriptech ověřte podporu.

Podporuje cron sekundy a plány kratší než jedna minuta?

Standardní unixový cron nepodporuje sekundy; jeho nejmenší rozlišení je jedna minuta, protože crond vyhodnocuje plán jednou za minutu podle specifikace crontab(5).

K plánování úloh s přesností na sekundy používají vývojáři rozšířené dialekty cronu, které přidávají úvodní šesté pole. Quartz Scheduler i syntaxe @Scheduled cron ve Springu umisťují sekundy na první místo, což dává sekunda minuta hodina den-v-měsíci měsíc den-v-týdnu. AWS EventBridge (dříve CloudWatch Events) používá šesti-polový cron s polem pro rok na konci.

Protože se tyto formáty liší, šesti-polový výraz napsaný pro Quartz se v běžném crontabu nespustí správně. Vždy si ověřte, který engine váš výraz analyzuje, protože počet polí a posuny se mezi systémy liší.

Jak časová pásma ovlivňují úlohy cron?

Časová pásma ovlivňují úlohy cron proto, že většina démonů cron vyhodnocuje plány podle lokálního času systému, a ne podle UTC. Když server přechází na letní nebo zimní čas, úlohy naplánované během vynechané nebo opakované hodiny mohou být vynechány nebo spuštěny dvakrát; manuál crontab(5) i dokumentace databáze IANA Time Zone Database tyto okrajové případy popisují.

Abyste se vyhnuli nejasnostem, mnoho týmů nastavuje server nebo proměnnou CRON_TZ v souboru crontab na UTC, čímž se řídí doporučeními podobnými normě ISO 8601 pro jednoznačné měření času. Cloudové plány, jako jsou Google Cloud Scheduler a AWS EventBridge, vám umožňují specifikovat časové pásmo explicitně.

Když záleží na přesném načasování, vždy zdokumentujte, zda je daný výraz v UTC nebo v místním čase.

Jak bezpečně otestovat a ověřit výraz cron

Chcete-li bezpečně otestovat výraz cron, ověřte jeho syntaxi a prohlédněte si nadcházející časy spuštění před jeho přidáním do ostrého souboru crontab. Tento analyzátor kontroluje rozsahy polí a operátory a poté vypíše další časy spuštění, abyste mohli potvrdit, že frekvence odpovídá vašemu záměru.

Na serveru spusťte příkaz crontab -l pro zobrazení existujících úloh a crontab -e pro jejich úpravu, jak je popsáno v manuálových stránkách crontab(1) a crontab(5). Přesměrujte výstup úlohy do souboru protokolu (například připojením >> /var/log/myjob.log 2>&1), aby byly případné chyby viditelné.

Testování předem zabrání nákladným chybám o jedničku, jako je záměna minuty a hodiny, které se projeví až po spuštění harmonogramu v produkčním prostředí.

Časté chyby při psaní výrazů cron

Nejčastější chybou v cronu je špatné pochopení pořadí polí a záměna minuty s hodinou, takže 0 9 * * * (9:00) se změní na 9 0 * * * (00:09).

  • Další častou chybou je očekávání, že den v měsíci a den v týdnu se spojí pomocí logiky AND, přičemž POSIX cron používá logiku OR, pokud jsou nastaveny oba údaje, podle specifikace crontab(5).
  • Vývojáři také předpokládají, že den 7 znamená neděli; standardní cron používá 0-6, ačkoliv Vixie cron pro pohodlí akceptuje 7 jako neděli.
  • Použití */5 v poli hodin ve významu „každých 5 hodin“ funguje, ale zapomenutí úvodní 0 v poli minut způsobí, že se úloha spouští každou minutu těchto hodin.
  • Neuvedené znaky procenta (%) v příkazech jsou navíc cronem považovány za nové řádky.

Kde se výrazy cron používají v DevOps a CI/CD?

Výrazy cron se používají v celém ekosystému DevOps a CI/CD ke spouštění opakované automatizace bez nutnosti ručního zásahu. GitHub Actions plánuje pracovní postupy pomocí standardního pětipolového cronu v klíči on.schedule.cron a plány kanálů GitLab CI využívají stejnou syntaxi.

Kubernetes CronJobs, definované v rozhraní batch/v1 API, spouštějí kontejnerizované úlohy podle harmonogramu cron, jak je dokumentováno v oficiální dokumentaci Kubernetes. Cloudové platformy včetně AWS EventBridge, Google Cloud Scheduler a Azure Logic Apps nabízejí plánování ve stylu cronu pro bezserverové úlohy.

Mezi běžná použití patří:

  • noční zálohy databází
  • zahřívání mezipaměti
  • generování sestav
  • obnova certifikátů
  • rotace protokolů

Vzhledem k tomu, že každá platforma může používat mírně odlišný dialekt, vždy ověřte svůj výraz vůči parseru cílového systému.

Frequently Asked Questions

sell

Tags