Kalkulator wyrażeń cron
Wpisz standardowe 5-polowe wyrażenie cron (dialekt cronie) oraz datę i godzinę początkową i sprawdź, kiedy zadanie uruchomi się następnym razem.
Jaki to cron
Ten kalkulator odczytuje standardowe 5-polowe wyrażenie cron używane przez crontab w Linuksie i działa zgodnie z zachowaniem cronie. Nie jest kalkulatorem dla innych dialektów crona. W szczególności wyrażenia w stylu Quartz (6 lub 7 pól z sekundami i latami oraz znaki ? L W #) są inne i nie są obsługiwane. Harmonogramy takie jak AWS EventBridge, Kubernetes CronJob i timery systemd mają własną składnię lub ustawienia strefy czasowej i też nie są obsługiwane.
| Pole | Zakres | Sposób zapisu |
|---|---|---|
| Minuta | 0–59 | *, liczba, 1,15 (lista), 10-20 (zakres), */15 lub 0-30/10 (kroki) |
| Godzina | 0–23 | Tak samo |
| Dzień miesiąca | 1–31 | Tak samo |
| Miesiąc | 1–12 | Tak samo. Działają też nazwy (od jan do dec, bez rozróżniania wielkości liter), w listach i zakresach |
| Dzień tygodnia | 0–7 | Tak samo. Działają też nazwy (od sun do sat). 0 i 7 oznaczają niedzielę |
@yearly(@annually) =0 0 1 1 *,@monthly=0 0 1 * *,@weekly=0 0 * * 0,@daily=0 0 * * *,@hourly=0 * * * *. Ten kalkulator akceptuje też@midnightjako@daily.- Zakres dni tygodnia kończący się na 0 (
5-0) jest odczytywany jako kończący się na 7 (piątek, sobota, niedziela). - Gdy krok jest większy niż zakres (np.
*/23w polu godzin), używane są tylko pierwsza wartość i wartości, do których dochodzi krok (*/23= godziny 0 i 23).
Dzień miesiąca i dzień tygodnia: OR i AND
To, jak pole dnia miesiąca i pole dnia tygodnia współdziałają, zależy od implementacji crona (cronie).
- Jeśli żadne pole nie zaczyna się od
*, zadanie uruchamia się w dni pasujące do któregokolwiek z nich (OR).30 4 1,15 * 5uruchamia się o 4:30 pierwszego i piętnastego dnia każdego miesiąca oraz w każdy piątek. - Jeśli którekolwiek pole zaczyna się od
*, zadanie uruchamia się w dni pasujące do obu (AND). Pole zaczynające się od*liczy się jako „bez ograniczeń”. *i*/2są traktowane tak samo, ponieważ oba zaczynają się od*. Różnią się tylko rozwinięte wartości (*/2to dni nieparzyste: 1, 3, 5 itd.).0 0 */2 * 1= dni nieparzyste AND poniedziałki0 0 1-31/2 * 1= dni nieparzyste OR poniedziałki (1-31/2nie zaczyna się od*)
- Wynik pokazuje, czy obowiązuje OR, czy AND.
Jak daleko szuka
Zaczynając po wpisanej dacie i godzinie, kalkulator sprawdza do 10 lat do przodu (ale nie dalej niż do 31 grudnia 2100), dzień po dniu. Wyrażenie, które uruchamia się tylko raz na kilka lat, np. dla 29 lutego, zostanie znalezione, jeśli uruchomi się w ciągu 10 lat. Jeśli w ciągu 10 lat nic się nie uruchomi (np. dlatego, że taka data nie istnieje), wynik to mówi. Sama godzina początkowa nie jest wliczana (szukane są terminy „po” niej).
Nieobsługiwana składnia
Jeśli wpiszesz jedno z poniższych, kalkulator wyjaśni, dlaczego nie może tego odczytać.
- Wyrażenia z 6 lub 7 polami (pole sekund lub roku, jak w Quartz)
?,L,Wi#(składnia Quartz)@reboot(zadanie uruchamiane raz przy starcie, więc nie ma terminów uruchomień)~(losowe wartości w cronie) iCRON_TZ(strefa czasowa dla crontaba)- Krok dla pojedynczej wartości początkowej, np.
5/15
Strefy czasowe i czas letni
Wpisana data i godzina są używane takie, jakie są, jako rok, miesiąc, dzień, godzina i minuta. Przeliczanie stref czasowych i czas letni nie są uwzględniane, więc wynik może się różnić od tego, co cron naprawdę robi w Twoim systemie. Według podręcznika cronie (sprawdzonego 28 października 2026) zadania w godzinie, która nie istnieje z powodu zmiany czasu letniego, nie są uruchamiane, a zadania w godzinie występującej dwa razy są uruchamiane dwa razy. Inne implementacje crona obsługują to inaczej.
Przykłady
*/15 9-17 * * 1-5uruchamia się co 15 minut od 9:00 do 17:59 w dni robocze0 9 * * 1uruchamia się o 9:00 w każdy poniedziałek0 0 1 * *uruchamia się o 0:00 pierwszego dnia każdego miesiąca (tak samo jak@monthly)0 0 * * 0i0 0 * * 7oba uruchamiają się o 0:00 w każdą niedzielę30 4 1,15 * 5uruchamia się o 4:30 pierwszego i piętnastego oraz w każdy piątek (OR)0 0 29 2 *uruchamia się o 0:00 29 lutego w latach przestępnych (następny termin może być za kilka lat)0 0 31 2 *nigdy się nie uruchamia, bo 31 lutego nie istnieje (w ciągu 10 lat nic nie zostanie znalezione)
Źródła i data sprawdzenia
Składnię i zachowanie sprawdzono w kodzie źródłowym cronie (entry.c i cron.c) oraz w podręczniku crontab(5) cronie (cronie na GitHubie) 28 października 2026. Na potrzeby tej angielskiej strony otwarto także stronę podręcznika crontab(5) na man7.org, będącą podręcznikiem cronie, 31 października 2026. Wymienia ona pięć pól i ich zakresy, nazwy miesięcy i dni tygodnia (pierwsze trzy litery, bez rozróżniania wielkości liter, możliwe w listach i zakresach), zachowanie OR, gdy żadne pole dnia nie zawiera *, oraz skróty @reboot, @yearly, @annually, @monthly, @weekly, @daily i @hourly. Ta strona podręcznika nie wymienia @midnight i nie opisuje zachowania AND; te dwa punkty pochodzą z kodu źródłowego cronie. Różnic w innych implementacjach crona nie sprawdzano.
Najczęściej zadawane pytania
Co się stanie, jeśli ustawię jednocześnie dzień miesiąca i dzień tygodnia?
Jeśli żadne pole nie zaczyna się od *, zadanie uruchamia się w dni pasujące do któregokolwiek z nich (OR). Jeśli którekolwiek pole zaczyna się od * (także */2), uruchamia się w dni pasujące do obu (AND).
Jaka jest różnica między 0 a 7 w dniu tygodnia?
Żadna. Oba oznaczają niedzielę.
Czy wynik może się różnić od tego, co mój cron naprawdę robi?
Tak. Ten kalkulator używa wpisanej daty i godziny takich, jakie są, i nie uwzględnia stref czasowych ani czasu letniego. Implementacje crona inne niż cronie mogą też zachowywać się inaczej.
Dlaczego nic nie pokazuje się dalej niż 10 lat?
Wyszukiwanie kończy się 10 lat po dacie i godzinie początkowej. Wyrażenie dla nieistniejącej daty, takiej jak 31 lutego, nigdy się nie uruchamia.