Generator wyrażeń cron
Zbuduj harmonogram i zobacz, kiedy się uruchomi
-
1Wprowadź dane
Wpisz treść, wklej tekst lub załaduj plik z dysku. -
2Kliknij przycisk
Narzędzie natychmiast przetworzy Twoje dane w przeglądarce. -
3Pobierz wynik
Skopiuj gotowy tekst lub zapisz plik na urządzeniu.
return "Wynik gotowy w 0.1s";
}
Gwiazdka to każda wartość, przecinek tworzy listę (1,15), myślnik zakres (1-5), ukośnik krok (*/10). Działają też skróty JAN–DEC i MON–SUN.
Wyrażenie cron
Codziennie o 03:00.
Uruchomień w dniu aktywnym
Dotyczy dni pasujących do pól dnia i miesiąca.
Najbliższe uruchomienie
Dni uruchamiania
Strefa czasowa serwera
Cron używa czasu serwera, na którym działa.
Obliczam najbliższe terminy…
Ściąga: składnia crontab
Pola wyrażenia (kolejność od lewej)
| Pole | Dozwolone wartości | Uwagi |
|---|---|---|
| Minuta | 0–59 | |
| Godzina | 0–23 | zapis 24-godzinny |
| Dzień miesiąca | 1–31 | dni 29–31 nie występują w każdym miesiącu |
| Miesiąc | 1–12 | lub skróty JAN–DEC |
| Dzień tygodnia | 0–7 | 0 i 7 to niedziela, 1 to poniedziałek; lub skróty SUN–SAT |
Znaki specjalne
| Znak | Znaczenie | Przykład |
|---|---|---|
| * | każda wartość z zakresu pola | * * * * * to co minutę |
| , | lista wartości | 1,15 w polu dnia miesiąca to 1. i 15. |
| - | zakres włącznie z końcami | 1-5 w polu dnia tygodnia to pn–pt |
| / | krok | */15 w minutach to 0, 15, 30, 45 |
Popularne wyrażenia
| Wyrażenie | Znaczenie |
|---|---|
| * * * * * | Co minutę. |
| */5 * * * * | Co 5 minut. |
| 0 * * * * | Co godzinę, równo o pełnej godzinie. |
| 0 */6 * * * | Co 6 godzin: o 00:00, 06:00, 12:00, 18:00. |
| 0 3 * * * | Codziennie o 03:00. |
| 30 8 * * 1-5 | W dni robocze (pn–pt) o 08:30. |
| 0 9 * * 1 | W każdy poniedziałek o 09:00. |
| 0 0 * * 0 | W każdą niedzielę o 00:00. |
| 0 0 1 * * | 1. dnia miesiąca o 00:00. |
| 15 10 1,15 * * | W dniach miesiąca: 1, 15 o 10:15. |
| 0 0 1 1 * | 1. dnia miesiąca o 00:00, w styczniu. |
Skróty zamiast pięciu pól
| Skrót | Odpowiada | Znaczenie |
|---|---|---|
| @yearly, @annually | 0 0 1 1 * | raz w roku, 1 stycznia o północy |
| @monthly | 0 0 1 * * | 1. dnia miesiąca o północy |
| @weekly | 0 0 * * 0 | w niedzielę o północy |
| @daily, @midnight | 0 0 * * * | codziennie o północy |
| @hourly | 0 * * * * | co godzinę, równo o pełnej godzinie |
Jak to liczymy
Każde pole zamieniamy na zbiór wartości (1-5 to 1, 2, 3, 4, 5). Zadanie uruchamia się, gdy minuta, godzina i miesiąc pasują do swoich zbiorów, a dzień do pól dnia. Dla wyrażenia 0 3 * * * liczba uruchomień w dniu aktywnym to 1: tyle, ile wynosi iloczyn liczby minut i liczby godzin.
Pułapki harmonogramu
Gdy ustawisz oba pola dnia (miesiąca i tygodnia), cron uruchomi zadanie, gdy pasuje któreś z nich. Krok */7 w minutach daje 0, 7, ..., 56, a potem znowu 0, więc przerwy nie są równe. Godziny odnoszą się do strefy czasowej serwera, na którym działa cron.
Pułapki polecenia
Wpis dodasz przez crontab -e, a listę sprawdzisz przez crontab -l. Cron działa w minimalnym środowisku, więc podawaj pełne ścieżki do programów i plików. Znak % w poleceniu oznacza koniec linii, dlatego zapisz go jako \%. Quartz i AWS EventBridge używają innej składni, z sześcioma polami.
Oceń to narzędzie:
Powiązane narzędzia
Inne narzędzia, które mogą Ci się przydaćGenerator wyrażeń cron
Cron to standardowy harmonogram zadań w systemach Unix. Wyrażenie ma pięć pól, a błąd w jednym z nich oznacza zadanie uruchamiane w złym czasie.
Budowa wyrażenia
| Pole | Zakres |
|---|---|
| Minuta | 0–59 |
| Godzina | 0–23 |
| Dzień miesiąca | 1–31 |
| Miesiąc | 1–12 |
| Dzień tygodnia | 0–6 (0 = niedziela) |
Znaki specjalne
*— każda wartość,,— lista (np.1,15),-— zakres (np.1-5),/n— krok (np.*/5= co 5).
Przykłady
0 3 * * *— codziennie o 3:00,*/5 * * * *— co 5 minut,30 8 * * 1-5— dni robocze o 8:30,0 0 1 * *— pierwszy dzień miesiąca o północy.
Jak działa generator i skąd bierze się lista uruchomień
Wyrażenie cron to pięć niezależnych warunków. System co minutę sprawdza, czy bieżąca minuta, godzina, dzień miesiąca, miesiąc i dzień tygodnia należą do zbiorów opisanych w poszczególnych polach. Jeśli którykolwiek warunek nie jest spełniony, zadanie jest pomijane i sprawdzenie wraca przy następnej minucie. Każde pole opisuje więc zbiór dozwolonych wartości, a nie jedną konkretną wartość.
Generator działa w drugą stronę. Zamiast czekać na upływ czasu, przegląda kolejne minuty od momentu wygenerowania i dla każdej z nich sprawdza zgodność z wyrażeniem. Pierwsze trafienia tworzą listę najbliższych uruchomień, dlatego wynik zależy od tego, kiedy go policzysz oraz od strefy czasowej urządzenia, na którym otwarto narzędzie.
Zbiór wartości w jednym polu może być sumą kilku zapisów: pojedynczej liczby, listy, zakresu, kroku albo gwiazdki oznaczającej cały zakres. Krok odlicza się od początku zakresu, więc w polu minuty zapis */15 daje wartości 0, 15, 30 i 45, czyli cztery uruchomienia w ciągu godziny. Ten sam mechanizm obowiązuje w pozostałych polach, tylko na innych zakresach.
Przykład krok po kroku: */15 9-17 * * 1-5
- Dzielimy wyrażenie na pięć pól: minuta */15, godzina 9-17, dzień miesiąca *, miesiąc *, dzień tygodnia 1-5.
- Pole minuty: krok 15 od początku zakresu 0-59 daje wartości 0, 15, 30 i 45, czyli 4 uruchomienia w każdej godzinie.
- Pole godziny: zakres 9-17 obejmuje 9 wartości (9, 10, 11, 12, 13, 14, 15, 16, 17).
- Dzień miesiąca i miesiąc to gwiazdki, więc zadanie może wypaść każdego dnia roku.
- Dzień tygodnia 1-5 to poniedziałek, wtorek, środa, czwartek i piątek; sobota i niedziela wypadają z harmonogramu.
- Mnożymy: 4 uruchomienia na godzinę razy 9 godzin = 36 uruchomień w dniu roboczym, czyli 36 razy 5 = 180 w tygodniu. Pierwsze odpalenie wypada w poniedziałek o 9:00, ostatnie o 17:45.
Krok w polu minuty a liczba uruchomień
| Zapis w polu minuty | Uruchomienia w ciągu godziny | Uruchomienia w ciągu doby (pozostałe pola jako gwiazdki) |
|---|---|---|
| */1 | 60 | 1440 |
| */2 | 30 | 720 |
| */5 | 12 | 288 |
| */10 | 6 | 144 |
| */15 | 4 | 96 |
| */20 | 3 | 72 |
| */30 | 2 | 48 |
Jak używać generatora w praktyce
- Buduj wyrażenie od najrzadszego pola - najpierw ustal dzień i godzinę, a dopiero na końcu doprecyzuj minuty. Łatwiej wtedy zauważyć, że zakres godzin kończy się na 23, a nie na 24.
- Zamień długą listę na zakres z krokiem - zapis 0-45/15 jest krótszy i czytelniejszy niż 0,15,30,45, a daje dokładnie te same cztery wartości w każdej godzinie.
- Testuj na wyrażeniu z najbliższą minutą - wpisz w polu minuty wartość o kilka minut do przodu i sprawdź listę najbliższych uruchomień, zamiast czekać na pełny cykl dobowy.
- Nie ograniczaj jednocześnie dnia miesiąca i dnia tygodnia - gdy oba pola są zawężone, przewidzenie terminu staje się trudne, bo zależność między nimi bywa nieintuicyjna. Zostaw jedno z nich jako gwiazdkę.
- Dopisuj opis obok wyrażenia - w crontabie dodaj komentarz z celem zadania, bo po kilku miesiącach sam zapis */15 9-17 * * 1-5 nic nie mówi o tym, co właściwie ma się uruchomić.
Ograniczenia narzędzia i pułapki
- Czas liczony lokalnie po stronie przeglądarki - lista najbliższych uruchomień powstaje według zegara urządzenia, na którym otwarto narzędzie. Serwer docelowy może pracować w innej strefie i wtedy realne godziny będą inne.
- Brak rozszerzeń poza pięcioma polami - narzędzie obsługuje klasyczny zapis. Rozwiązania typu ostatni dzień miesiąca, najbliższy dzień roboczy czy trzeci piątek miesiąca nie mają tu swojego odpowiednika.
- Brak kontroli kalendarza - miesiące mają różną liczbę dni, więc wpis z dniem 31 nie wykona się w każdym miesiącu. Generator nie ostrzega o takich martwych kombinacjach, po prostu pokazuje trafienia.
- Nie sprawdza samego zadania - poprawna składnia wyrażenia nie oznacza, że polecenie istnieje, ma wymagane uprawnienia i właściwe ścieżki w minimalnym środowisku crona. Tego narzędzie nie weryfikuje.
Najczęstsze pytania
Jak dodać zadanie?
Wpisz crontab -e i dodaj linię: wyrażenie polecenie.
Dlaczego zadanie się nie uruchamia?
Sprawdź ścieżki (cron ma minimalne środowisko), uprawnienia i logi systemowe.
Jak strefa czasowa działa w cronie?
Cron używa czasu lokalnego serwera — ustaw go poprawnie lub użyj CRON_TZ.
Co oznacza */5 w wyrażeniu cron?
To krok: w polu minuty oznacza wartości 0, 5, 10 i tak dalej aż do 55. Zadanie uruchamia się więc 12 razy w ciągu godziny, a przy pozostałych polach ustawionych na gwiazdkę 288 razy na dobę.
Ile razy na dobę uruchomi się zadanie z */15 w polu minuty?
Krok 15 daje cztery wartości w każdej godzinie (0, 15, 30, 45), czyli 4 razy 24 = 96 uruchomień na dobę, o ile pozostałe pola pozostają gwiazdkami.
Jak ustawić zadanie na ostatni dzień miesiąca?
Klasyczne pięć pól nie ma znacznika ostatniego dnia miesiąca. Najprościej uruchamiać zadanie codziennie i sprawdzać datę w samym skrypcie. Część implementacji crona obsługuje dodatkowe znaczniki, ale nie są one częścią standardu.
Czy cron nadrobi uruchomienia pominięte przy wyłączonym serwerze?
Nie. Cron wywołuje zadanie tylko wtedy, gdy w danej minucie działa, więc pominięte terminy przepadają. Nadrabianie zaległości po restarcie to funkcja dodatkowych narzędzi, a nie samego crona.
Czy dzień tygodnia można zapisać jako 7 zamiast 0 dla niedzieli?
W tym generatorze pole dnia tygodnia przyjmuje wartości 0-6, gdzie 0 oznacza niedzielę. Część systemów akceptuje także 7, ale jeśli wpis ma być przenośny między serwerami, lepiej używać 0.