Jak często ma ruszać skrypt? Generator cron składa wyrażenie z listy albo rozbiera gotowe, tłumaczy je na polski i wypisuje najbliższe terminy w czasie polskim lub UTC.
Generator Cron - Wyrażenie Crontab i Najbliższe Terminy
Jak często ma ruszać skrypt? Generator cron składa wyrażenie z listy albo rozbiera gotowe, tłumaczy je na polski i wypisuje najbliższe terminy w czasie polskim lub UTC.
Parametry
Wprowadź dane do obliczeń
💡 Wypełnij wszystkie wymagane pola, aby odblokować przycisk obliczania
Wyrażenie cron od środka - atlas pięciu pól
Pięć pól oddzielonych spacjami decyduje, kiedy serwer uruchomi skrypt. 30 7 * * 1-5 to „od poniedziałku do piątku o 07:30”, a */15 * * * * to „co 15 minut”. Generator składa takie wyrażenie z listy (co ile minut, o której godzinie, w jakie dni) albo rozbiera gotowe, tłumaczy je na polski i wypisuje najbliższe terminy uruchomienia w czasie polskim, razem z nocami zmiany czasu.
Jak ustawić zadanie w cronie - krok po kroku
- Tryb - „zbuduj” daje gotowe wyrażenie z prostych pytań, „sprawdź” przyjmuje wyrażenie albo całą linię z crontaba.
- Harmonogram - co minutę, co N minut, co N godzin, codziennie, w dni robocze, w wybrane dni tygodnia, raz w miesiącu albo raz w roku.
- Strefa serwera - czas polski albo UTC. Strefę serwera pokażą polecenia
timedatectlalbodate. - Licz od - puste pole oznacza „od teraz”. Datę wpisuje się w czasie polskim.
- Skopiuj linię - kliknięcie w kod zaznacza całość. Wklejasz ją po poleceniu
crontab -e, a ścieżkę zamieniasz na swoje polecenie.
Podstawy, które warto znać przed edycją crontaba
Demon cron sprawdza tabelę co minutę i uruchamia każde polecenie, którego pola zgadzają się z bieżącą chwilą. Stąd najmniejszy możliwy odstęp to 1 minuta, a wyrażenie z sześcioma polami (sekundy na początku) pochodzi z innego świata: tak zapisują harmonogramy Quartz i Spring w Javie. Generator rozpoznaje taki zapis i podpowiada, co usunąć.
Każde pole przyjmuje gwiazdkę (każda wartość), pojedynczą liczbę, zakres z łącznikiem (8-11 to godziny 8, 9, 10 i 11), listę po przecinku i krok po ukośniku (0-23/2 albo */2). W polach miesiąca i dnia tygodnia działają angielskie skróty z trzech liter: jan-dec i sun-sat, bez względu na wielkość liter. Tak opisuje to strona podręcznika man 5 crontab programu cronie.
Krok liczy się wyłącznie wewnątrz jednego pola. */35 w minutach nie znaczy „co 35 minut”, tylko „w minucie 0 i 35 każdej godziny”, więc między 12:35 a 13:00 mija 25 minut. Ten sam podręcznik podaje to jako przykład pułapki, a generator dopisuje ostrzeżenie zawsze, gdy krok nie dzieli 60 minut albo 24 godzin.
Tabela 1: pola i znaki specjalne crona
Zakresy wartości i zapisy, które przyjmuje cronie (pliki entry.c i cron.c z kodu źródłowego programu). Kolumna „Uwaga” zbiera błędy, które najczęściej kończą się odrzuceniem całej linii.
| Pole lub zapis | Wartości | Przykład | Uwaga |
|---|---|---|---|
| Minuta | 0-59 | 0,30 | brak sekund |
| Godzina | 0-23 | 8-17 | 24 to błąd, północ to 0 |
| Dzień miesiąca | 1-31 | 1,15 | nie ma „ostatniego dnia” |
| Miesiąc | 1-12 albo jan-dec | jan-mar | polskie nazwy nie działają |
| Dzień tygodnia | 0-7 albo sun-sat | 1-5 | 0 i 7 to niedziela, sat-sun działa |
* | pełny zakres pola | * * * * * | wpływa na regułę dni (niżej) |
a-b | zakres z oboma końcami | 9-17 | 22-5 odrzucony, pisz 22-23,0-5 |
/n | krok po * lub zakresie | */10 | 5/10 odrzucony, /0 też |
, | lista wartości i zakresów | 0-4,8-12 | bez spacji po przecinku |
? L W # | składnia Quartz | 0 0 L * ? | linuksowy cron ich nie zna |
Tabela 2: gotowe wyrażenia i skróty z @
Skróty z małpą zastępują całe pięć pól. Ich rozwinięcia pochodzą z podręcznika i kodu cronie; @midnight działa tak samo jak @daily. Ostatnia kolumna mówi, czy wyrażenie zachowuje się przewidywalnie.
| Wyrażenie | Znaczenie | Ocena |
|---|---|---|
@hourly = 0 * * * * | co godzinę, o pełnej | Przewidywalne |
@daily = 0 0 * * * | codziennie o północy | Przewidywalne |
@weekly = 0 0 * * 0 | w niedzielę o północy | Przewidywalne |
@monthly = 0 0 1 * * | 1. dnia miesiąca o północy | Przewidywalne |
@yearly = 0 0 1 1 * | 1 stycznia o północy | Przewidywalne |
@reboot | raz po starcie demona cron | Bez stałych terminów |
*/7 * * * * | minuty 0, 7 ... 56, potem 0 | Nierówny odstęp (4 min) |
0 0 31 * * | tylko miesiące z 31 dniami | 5 miesięcy bez uruchomienia |
30 2 * * * | codziennie o 02:30 | Przesunięte w noc zmiany czasu |
Ciekawe zależności, które psują harmonogram
30 4 1,15 * 5 uruchomi się 1. i 15. dnia każdego miesiąca oraz w każdy piątek. W miesiącu, który zaczyna się w niedzielę, generator pokazuje dla tego wyrażenia kolejno dni: 1, 6, 13, 15 i 20.
*. W 0 0 */2 * 1 pole dnia miesiąca zaczyna się od gwiazdki, więc oba warunki muszą być spełnione razem: północ w poniedziałek, który wypada w nieparzysty dzień miesiąca.
30 2 * * *, uruchamia zaraz po nim, o 03:00. Zadanie z gwiazdką w minutach lub godzinach (*/30 2 * * *) tego dnia nie wystartuje wcale.
Jak czytać listę najbliższych uruchomień?
Przykład z generatora: tryb „zbuduj”, dni robocze, godzina 07:30, liczenie od piątku 14:00. Wynik to 30 7 * * 1-5, a lista zaczyna się od poniedziałku 07:30; w sobotę i niedzielę nic się nie dzieje, więc odstęp między piątkiem a poniedziałkiem wynosi 72 godziny. Pod listą pojawia się uwaga, że cron nie zna świąt.
| Co widzisz w wyniku | Co to znaczy |
|---|---|
| Równe odstępy, brak uwag | wyrażenie robi to, co mówi opis |
| „nadrobione po przestawieniu zegara” | wiosenna zmiana czasu, start o 03:00 zamiast 02:xx |
| „drugi raz, po cofnięciu zegara” | jesienna zmiana czasu, skrypt wykona się dwukrotnie |
| „Brak uruchomień” | data nie istnieje, np. 0 0 30 2 * (30 lutego) |
| Krótszy odstęp na przełomie godziny | krok nie dzieli 60 lub 24, np. */7 |
Terminy liczone są według reguł cronie z dystrybucji Linuksa. Systemd timers, Kubernetes CronJob, Quartz i harmonogramy w usługach chmurowych mają własną składnię albo strefę, więc przed wdrożeniem sprawdź ich dokumentację.
Pytania o cron, które padają najczęściej
Powiązane narzędzia
Regex Tester
Wyrażenia regularne JavaScript z podświetleniem dopasowań, grupami, podmianą i ochroną przed ReDoS - Zobacz generator
JWT Decoder
Nagłówek i payload tokenu JWT, daty wygaśnięcia w czasie polskim i weryfikacja podpisu HS256 sekretem - Zobacz generator
Formatowanie JSON
Sprawdzenie pliku konfiguracyjnego JSON z numerem linii błędu - Zobacz generator
Generator Danych Testowych
Rekordy do bazy testowej, którą skrypt z crona może zasilać - Zobacz generator
Kodowanie Base64
Tekst na Base64 i z powrotem, np. do nagłówka autoryzacji w skrypcie - Zobacz generator
Generator SHA-256
Suma kontrolna kopii zapasowej robionej co noc - Zobacz generator
Konwerter JSON na XML
Zamiana formatu danych między systemami - Zobacz generator
Generator zweryfikowany przez zespół LiczGrupa.pl
Treść, wzory i wyniki zostały sprawdzone pod kątem poprawności i aktualności przez nasz zespół specjalistów.

Sprawdził: Krystian Szyszka