Przejdź do treści
HNarzędzia
pl
Kategorie

Generator cron - edytor i tłumacz wyrażeń crontab

Wpisz wyrażenie cron, a narzędzie wyjaśni je po polsku i pokaże 10 najbliższych uruchomień. Możesz też zbudować harmonogram w kreatorze lub wybrać gotowy przykład.

  • Za darmo
  • Bez rejestracji
  • Prywatne
  • Działa lokalnie

minuta · godzina · dzień miesiąca · miesiąc · dzień tygodnia (opcjonalnie sekundy na początku)

Opis
Tłumaczę wyrażenie…

Gotowe przykłady

Kreator

Zmiany w kreatorze od razu zastępują wyrażenie powyżej.

Pola wyrażenia

PoleWartośćDozwolone
Minuta00-59
Godzina90-23
Dzień miesiąca*1-31, ? L W
Miesiąc*1-12, JAN-DEC
Dzień tygodnia1-50-7 (0 i 7 = niedziela), SUN-SAT, ? L #

Jak utworzyć wyrażenie cron?

  1. 1.

    Wybierz przykład lub kreator

    Kliknij gotowy przykład (np. „Dni robocze o 9:00”) albo w kreatorze ustaw, jak często zadanie ma się uruchamiać.

  2. 2.

    Dopracuj wyrażenie

    Możesz ręcznie edytować wyrażenie - opis po polsku i lista uruchomień aktualizują się na bieżąco.

  3. 3.

    Sprawdź najbliższe uruchomienia

    Porównaj 10 najbliższych terminów z oczekiwaniami. Daty liczone są w strefie czasowej Twojej przeglądarki.

  4. 4.

    Skopiuj do konfiguracji

    Skopiuj wyrażenie i wklej je do crontaba (crontab -e), pliku workflow GitHub Actions lub manifestu CronJob.

Składnia cron - 5 pól

Wyrażenie cron to 5 pól oddzielonych spacjami: minuta godzina dzień-miesiąca miesiąc dzień-tygodnia.

PoleZakresPrzykład
Minuta0-5930 - w 30. minucie
Godzina0-239-17 - od 9 do 17
Dzień miesiąca1-311,15 - 1. i 15. dnia
Miesiąc1-12 lub JAN-DEC*/3 - co 3 miesiące
Dzień tygodnia0-7 lub SUN-SAT (0 i 7 = niedziela)1-5 - poniedziałek-piątek

Znaki specjalne: * - każda wartość, , - lista, - - zakres, / - krok. Przykład: */15 9-17 * * 1-5 oznacza „co 15 minut od 9:00 do 17:45 w dni robocze”. Skróty: @hourly, @daily, @weekly, @monthly, @yearly, @reboot (raz przy starcie systemu).

Najpopularniejsze wyrażenia cron

WyrażenieZnaczenie
* * * * *co minutę
*/5 * * * *co 5 minut
0 * * * *co godzinę, o pełnej godzinie
0 0 * * *codziennie o północy
0 9 * * 1-5w dni robocze o 9:00
0 3 * * 0w niedziele o 3:00 (np. kopia zapasowa)
0 0 1 * *1. dnia każdego miesiąca o północy
0 0 1 1 *raz w roku, 1 stycznia

Pułapka: gdy ustawisz jednocześnie dzień miesiąca i dzień tygodnia (np. 0 0 13 * 5), klasyczny cron uruchomi zadanie każdego 13. dnia oraz w każdy piątek - warunki łączone są przez „lub”, a nie „i”.

Crontab, GitHub Actions, Kubernetes i Quartz - różnice

SystemPolaStrefa czasowaUwagi
crontab (Linux, cronie, Vixie)5strefa serweraobsługuje @reboot, @daily itd.
GitHub Actions on: schedule5zawsze UTCnajkrótszy odstęp 5 minut; przy dużym obciążeniu start może się opóźnić
Kubernetes CronJob5strefa kontrolera, od wersji 1.27 pole timeZoneobsługuje makra @hourly, @daily itp.
Quartz / Spring @Scheduled6-7 (sekundy na początku, opcjonalnie rok)konfigurowalnaznaki ?, L, W, #; w Quartz w jednym z pól dni trzeba wpisać ?

Ponieważ GitHub Actions liczy czas w UTC, zadanie „o 8:00 czasu polskiego” wymaga wpisania 0 6 * * * latem (UTC+2) i 0 7 * * * zimą (UTC+1). Pomocny jest konwerter Unix timestamp.

Cron a zmiana czasu

W Polsce czas zmienia się w ostatnią niedzielę marca (z 2:00 na 3:00) i w ostatnią niedzielę października (z 3:00 na 2:00). Zadanie ustawione na 30 2 * * * w marcu trafia na godzinę, która nie istnieje, a w październiku na godzinę, która występuje dwa razy. Poszczególne implementacje cron radzą sobie z tym różnie - jedne pomijają, inne uruchamiają zadanie od razu po zmianie lub dwukrotnie. Ważne zadania (kopie zapasowe, raporty) najlepiej planować poza oknem 2:00-3:00 albo uruchamiać serwer w strefie UTC. Lista uruchomień w tym narzędziu pomija godziny, które nie istnieją.

Najczęściej zadawane pytania

Jak ustawić crona co 5 minut?

+
Użyj wyrażenia */5 * * * *. Zadanie uruchomi się w minutach 0, 5, 10, …, 55 każdej godziny.

Jak ustawić crona codziennie o północy?

+
Wpisz 0 0 * * * albo skrót @daily (równoważny @midnight).

Jak uruchomić zadanie tylko w dni robocze?

+
W polu dnia tygodnia wpisz zakres 1-5, np. 0 9 * * 1-5 - od poniedziałku do piątku o 9:00. Cron nie zna świąt, więc w dni wolne zadanie również się uruchomi.

Czy niedziela w cronie to 0 czy 7?

+
Obie wartości oznaczają niedzielę w crontabie. W Quartz numeracja jest inna: 1 to niedziela, a 7 to sobota, dlatego bezpieczniej używać nazw SUN-SAT.

W jakiej strefie czasowej działa cron?

+
Klasyczny crontab używa strefy czasowej serwera, GitHub Actions zawsze UTC, a Kubernetes strefy kontrolera lub tej ustawionej w polu timeZone. To narzędzie pokazuje terminy w strefie Twojej przeglądarki.

Jak ustawić crona co 30 sekund?

+
Klasyczny cron nie obsługuje sekund - najmniejsza jednostka to minuta. W Quartz, Springu lub node-cron użyj 6 pól: */30 * * * * *. W crontabie można dodać dwa wpisy, z czego drugi zaczyna się od sleep 30.

Co oznacza znak ? w wyrażeniu cron?

+
To „brak określonej wartości” z Quartz i Springa. Wpisuje się go w dzień miesiąca albo w dzień tygodnia, gdy drugie z tych pól jest ustawione, np. 0 0 12 ? * MON-FRI.

Aktualizacja: