Generator wyrażeń Cron
0-59
0-23
1-31
1-12
0.7 sun
Składnia cron jest zwięzła i łatwo o pomyłkę: 0 */6 * * * uruchamia się co sześć godzin, natomiast */6 0 * * * odpala dziesięć razy, tylko w pierwszej godzinie po północy. Ten generator pozwala wizualnie wybrać harmonogram (co 15 minut, w dni robocze o 9:00, 1. dnia każdego miesiąca) i generuje dokładne wyrażenie wraz z opisem w przystępnym języku, co ono oznacza.
Jak stworzyć wyrażenie Cron
-
1
Wybierz szablon lub wpisz pola
Co minutę, co godzinę, codziennie o północy, w każdą niedzielę i 1. dnia każdego miesiąca to jeden klik. We wszystkich innych przypadkach wpisz wartości bezpośrednio w pięć pól.
-
2
Dopracuj harmonogram
Konkretne minuty, godziny, dni miesiąca, miesiące oraz dni tygodnia. Obsługiwane są zakresy (9-17), listy (1,15) oraz kroki (*/6).
-
3
Odczytaj wyrażenie
Generator zawsze zwraca standardowy format cron z 5 polami oraz opis harmonogramu w przystępnym języku.
-
4
Sprawdź dialekt
Dialekty różnią się (Quartz, AWS EventBridge, Kubernetes). Upewnij się, że wyrażenie odpowiada temu, czego oczekuje twój scheduler.
Pięć pól
* * * * *
│ │ │ │ │
│ │ │ │ └── Dzień tygodnia (0-6, niedziela=0, lub SUN-SAT)
│ │ │ └───── Miesiąc (1-12, lub JAN-DEC)
│ │ └──────── Dzień miesiąca (1-31)
│ └─────────── Godzina (0-23)
└────────────── Minuta (0-59)
Każde pole akceptuje:
- Konkretną liczbę:
5 - Listę:
1,15,30 - Zakres:
9-17 - Krok:
*/10(co 10) lub0-30/5(co 5 od 0 do 30) - Symbol wieloznaczny:
*(każda wartość)
Najczęściej używane wyrażenia
| Harmonogram | Wyrażenie Cron |
|---|---|
| Co minutę | * * * * * |
| Co 15 minut | */15 * * * * |
| O każdej pełnej godzinie | 0 * * * * |
| Co 6 godzin | 0 */6 * * * |
| Codziennie o 2:30 | 30 2 * * * |
| W każdy dzień roboczy o 9:00 | 0 9 * * 1-5 |
| W każdy poniedziałek o 8:00 | 0 8 * * 1 |
| 1. dnia każdego miesiąca o 3:00 | 0 3 1 * * |
| Co 15 minut, w dni robocze od 9 do 17 | */15 9-17 * * 1-5 |
| W południe 1. i 15. dnia | 0 12 1,15 * * |
| W każdą niedzielę o północy | 0 0 * * 0 |
Pułapka dnia miesiąca + dnia tygodnia
W standardowym cronie, jeśli określono zarówno dzień miesiąca, jak i dzień tygodnia (oba różne od *), zadanie uruchamia się, gdy pasuje którykolwiek z nich (logika OR, a nie AND). 0 0 1 * MON uruchamia się 1. dnia każdego miesiąca oraz w każdy poniedziałek, a nie tylko wtedy, gdy 1. dzień miesiąca wypada w poniedziałek.
Vixie cron oraz większość dystrybucji Linuksa stosuje tę regułę OR. Quartz (Java) i niektóre inne używają AND. W razie wątpliwości przetestuj wyrażenie za pomocą suchego uruchomienia (dry run) lub zadania testowego w swoim schedulerze.
Różnice między dialektami
- Standardowy cron (Linux): 5 pól, dzień tygodnia 0-6 (niedziela = 0 lub 7).
- Quartz (Spring, aplikacje Java): 6-7 pól, gdzie pierwsze pole to sekundy, a rok jest opcjonalny. Dzień tygodnia 1-7 (niedziela = 1).
- AWS EventBridge cron: 6 pól, w tym rok. Dzień tygodnia i dzień miesiąca muszą się wzajemnie wykluczać (jedno z nich musi być
?). - GitHub Actions: standardowe 5 pól, minimalny interwał 5 minut, tylko UTC.
- Kubernetes CronJob: standardowe 5 pól, domyślnie UTC.
Zawsze sprawdzaj, którego dialektu używa Twój harmonogramator.
Strefy czasowe
Klasyczny cron działa w lokalnej strefie czasowej serwera. To powoduje poważne problemy podczas zmiany czasu letniego (DST): zadanie zaplanowane na 2:30 w dniu zmiany czasu może zostać wykonane dwukrotnie albo wcale. Nowoczesne harmonogramatory (systemd timers, Kubernetes, EventBridge) pozwalają jawnie określić strefę czasową – używaj UTC, chyba że masz dobry powód, by tego nie robić.
Najczęściej zadawane pytania
Co 5 jednostek danego pola, zaczynając od 0. W polu minut */5 uruchamia się w minutach 0, 5, 10, 15, …, 55. To skrócony zapis dla 0,5,10,15,20,25,30,35,40,45,50,55.
Cron nie potrafi wyrazić dowolnych interwałów, które nie dzielą się równo przez 60 minut lub 24 godziny. Dla 90 minut wypisz konkretne czasy uruchomienia: połącz 0 0,9 * * * z dodatkowymi wierszami albo przejdź na harmonogramator obsługujący dowolne interwały (systemd timers, anacron).
O północy. Kolejność pól to minuta-godzina, więc 0 0 oznacza „minuta 0 godziny 0“. Południe to 0 12 * * *.
Standardowy cron pomija to zadanie – pominięte uruchomienia nie są ponawiane. Anacron przy następnym uruchomieniu systemu wykonuje pominięte zadania dzienne, tygodniowe lub miesięczne. Zadania CronJob w Kubernetes mają startingDeadlineSeconds i concurrencyPolicy, które pozwalają jawnie obsłużyć pominięte okna czasowe.
Powiązane narzędzia
Tabela ASCII
Pełna tabela ASCII od 0 do 127 z zapisem dziesiętnym, szesnastkowym, ósemkowym i binarnym oraz notacją numerycznych odwołań HTML, w tym kodami sterującymi NUL, LF i DEL.
Referencja znaków HTML
Przeszukiwalna lista encji HTML wraz z ich kodami nazwanymi i liczbowymi oraz kopiowaniem jednym kliknięciem specjalnych znaków i symboli.
Skróty klawiaturowe
Wyszukuj udokumentowane skróty domyślne VS Code, Chrome i Bash z GNU Readline w macOS, Windows i Linux.
Generator losowych liter
Generuj losowe litery A-Z. Wybierz liczbę, wielkie litery, małe litery lub zapis mieszany i użyj wyniku w grach, zadaniach lub lekcjach.
Konwerter ASCII na binarny
Konwertuj dowolny ciąg ASCII na reprezentację binarną. Każdy znak staje się ośmioma bitami, rozdzielonymi spacjami, gotowymi do wklejenia w ślad protokołu albo zadanie domowe.
Próbnik kolorów HEX
Wybierz lub wpisz kolor HEX i sprawdź RGB, HSL, przybliżone CMYK, luminancję względną oraz kontrast z bielą i czernią.