Zrozum harmonogram cron zanim zostanie uruchomiony
Wyrażenia cron to zwarte ciągi harmonogramów używane przez serwery, zadania CI, platformy automatyzacji i skrypty konserwacyjne. Są potężne, ale mały błąd może zmienić zadanie z codziennego na wykonywane co minutę albo z dni roboczych na weekendy.
Ten parser wyjaśnia wyrażenie cron w stylu Unix z 5 pól prostym językiem, rozbija każde pole i pokazuje nadchodzące czasy uruchomienia w wybranej strefie czasowej w narzędziu.
Obsługiwany dialekt cron
Parser v1 obsługuje standardowy cron Unix z pięcioma polami:
minute hour day-of-month month day-of-week - Wartości minut od
0to59. - Wartości godzin od
0to23. - Wartości dnia miesiąca od
1to31. - Wartości miesięcy od
1to12, w tym nazwy takie jakJANandDEC. - Wartości dnia tygodnia od
0to7, w tym nazwy takie jakMONandFRI. Zarówno0and7oznaczają niedzielę.
Obsługuje znaki wieloznaczne, listy oddzielone przecinkami, zakresy oraz wartości krokowe takie jak */15 or 9-17/2.
Czego celowo nie obsługujemy
Dialekty cron nie są uniwersalne. Quartz, systemd timers, cloud schedulers, Kubernetes, GitHub Actions i platformy hostingowe mogą dodawać własne pola lub specjalne operatory.
- Pola sekund i pól roku nie są parsowane jako cron w stylu Unix.
- Operatory Quartz takie jak
?,L,W, oraz#są zgłaszane jako nieobsługiwane. - Makra takie jak
@dailyand@rebootnie są rozwijane. - Tekst polecenia po harmonogramie nie jest traktowany jako część wyrażenia.
Użyj tej strony jako inspektora harmonogramów w stylu Unix. Zanim zmienisz automatyzację produkcyjną, zweryfikuj dokładny scheduler, który będzie uruchamiał zadanie.
Strefa czasowa i zachowanie związane ze zmianą czasu
Wyrażenie cron samo w sobie nie zawiera informacji o strefie czasowej. To samo wyrażenie może uruchamiać się w różnych momentach w zależności od tego, czy serwer używa UTC, lokalnej strefy systemowej czy ustawienia strefy czasowej konkretnego schedulera.
- Podgląd pokazuje czasy uruchomień w wybranej strefie IANA oraz w UTC.
- Przejścia do czasu letniego (spring-forward) mogą pominąć lokalne czasy zegarowe, które nie istnieją.
- Powroty z czasu letniego mogą powtarzać lokalny czas zegarowy; zachowanie schedulera może się różnić.
- Jeśli zarówno pole day-of-month, jak i day-of-week są ograniczone, cron w stylu Unix zwykle używa semantyki LUB (OR).
Dla krytycznych zadań traktuj podgląd jako pomoc planistyczną i potwierdź zachowanie bezpośrednio w schedulerze.
Najczęściej zadawane pytania
Czy to obsługuje Quartz cron?
Nie. Parser obsługuje tylko cron Unix w wersji z 5 pól. Pola sekund w stylu Quartz, pola roku i operatory takie jak ?, L, W, oraz # są oznaczane jako nieobsługiwane.
Jakiej strefy czasowej używa wyrażenie cron?
Wyrażenia cron nie zawierają informacji o strefie czasowej. Podgląd używa strefy czasowej wybranej w narzędziu, ale Twój serwer lub scheduler może używać innej strefy.
Dlaczego day-of-month i day-of-week mogą się dopasować jednocześnie?
W typowym zachowaniu cron w stylu Unix, gdy oba pola są ograniczone, data może pasować, jeśli którekolwiek z pól pasuje. Na przykład, 0 0 1 * MON może uruchomić się pierwszego dnia miesiąca i w poniedziałki.
Czy mogę wkleić część z poleceniem z crontab?
Wklej tylko pięć pól harmonogramu. Narzędzie jest parserem harmonogramów, nie pełnym parserem crontab, więc tekst polecenia po harmonogramie nie jest interpretowany.