Generator wyrażeń cron
Napisz harmonogram cron i zobacz dokładnie, kiedy się uruchomi.
Najbliższe 10 uruchomień
Ściąga ze składni cron
| Pole | Dozwolone wartości |
|---|---|
| Minuta | 0-59 |
| Godzina | 0-23 |
| Dzień miesiąca | 1-31 |
| Miesiąc | 1-12 albo JAN-DEC |
| Dzień tygodnia | 0-6 albo SUN-SAT (7 to też niedziela) |
| Symbol | Znaczenie |
|---|---|
* | Każda wartość |
, | Lista wartości, na przykład 1,15 |
- | Zakres, na przykład 1-5 |
/ | Krok, na przykład */15 dla co 15. wartości |
Działa w przeglądarce. Nic, co wpiszesz, nie jest nigdzie wysyłane.
- Wyjaśnienie zwykłym językiem
- 10 najbliższych uruchomień
- Gotowe ustawienia typowych zadań
Jak napisać wyrażenie cron
- Wybierz gotowe ustawienie, albo wpisz wyrażenie z pięcioma polami.
- Dostrój pojedyncze pola w polach poniżej.
- Sprawdź wyjaśnienie i najbliższe uruchomienia, a potem skopiuj wyrażenie.
Popularne harmonogramy cron
| Harmonogram | Wyrażenie | Znaczenie |
|---|---|---|
| Co minutę | * * * * * | Uruchamia się 60 razy na godzinę |
| Co 5 minut | */5 * * * * | O :00, :05, :10 i tak dalej |
| Co noc o 2:00 | 0 2 * * * | Raz na 24 godziny |
| W dni robocze o 9:00 | 0 9 * * 1-5 | Tylko od poniedziałku do piątku |
| Pierwszy dzień miesiąca | 0 0 1 * * | O północy 1. dnia |
| Co 6 godzin | 0 */6 * * * | O północy, 6:00, w południe, 18:00 |
Czym różni się cron w różnych systemach
Format z 5 polami poniżej to ten, który buduje ten generator, i to właśnie z niego bezpośrednio korzysta większość harmonogramów zadań.
| System | Pola | Uwaga |
|---|---|---|
| Standardowy cron / crontab | 5 | Minuta, godzina, dzień miesiąca, miesiąc, dzień tygodnia |
| Kubernetes CronJob | 5 | Ten sam format, zapisany jako ciąg znaków w YAML |
| GitHub Actions | 5 | Ustawiane pod on.schedule.cron, zawsze działa w UTC |
| Quartz (Java) | 6 albo 7 | Dodaje pole sekund przed minutą |
| AWS EventBridge | 6 | Dodaje pole roku i używa ? dla dnia miesiąca albo dnia tygodnia |
Skopiuj stąd wyrażenie do harmonogramu Quartz albo AWS i dodaj dodatkowe pole, którego oczekuje; pozycje minuty, godziny, dnia, miesiąca i dnia tygodnia zostają takie same.
Wskazówki do pisania harmonogramów cron
- Wybieraj krok zamiast długiej listy: */15 * * * * jest krótsze i czytelniejsze niż 0,15,30,45 * * * *.
- Ustawienie jednocześnie dnia miesiąca i dnia tygodnia ogranicza mniej, niż mogłoby się wydawać: standardowy cron uruchamia zadanie, gdy pasuje którykolwiek warunek, a nie dopiero gdy pasują oba.
- Przetestuj harmonogram tutaj, zanim wkleisz go na serwer. Jedno błędne pole może zmienić codzienne zadanie w takie, które uruchamia się co minutę.
- Serwery zwykle uruchamiają cron w UTC. Lista najbliższych uruchomień powyżej pokazana jest w twojej strefie czasowej, więc przelicz ją, zanim założysz, że zadanie uruchomiło się na czas.
Generator wyrażeń cron: najczęstsze pytania
Co oznacza pięć pól w wyrażeniu cron?
Od lewej do prawej: minuta (0-59), godzina (0-23), dzień miesiąca (1-31), miesiąc (1-12) i dzień tygodnia (0-6, gdzie 0 to niedziela). Gwiazdka oznacza każdą wartość, więc * * * * * uruchamia się co minutę.
Jak uruchamiać zadanie cron co 5 minut?
Użyj */5 * * * *. /5 oznacza co piątą wartość, więc zadanie uruchamia się w minutach 0, 5, 10 i tak dalej, w każdej godzinie każdego dnia.
Co się dzieje, gdy ustawię jednocześnie dzień miesiąca i dzień tygodnia?
Standardowy cron uruchamia zadanie, gdy pasuje którykolwiek z warunków. 0 0 1 * 1 uruchamia się o północy 1. dnia każdego miesiąca, a także w każdy poniedziałek.
Z jakiej strefy czasowej korzysta cron?
Ze strefy czasowej serwera, na którym działa, a to często UTC. Godziny uruchomień na tej stronie podane są w twojej strefie czasowej, więc przelicz je, jeśli twój serwer ma ustawioną inną.
Czy ten format działa dla Kubernetes, GitHub Actions, Quartz albo AWS?
CronJoby Kubernetes i harmonogramy GitHub Actions używają tego samego formatu z 5 polami. Quartz dodaje pole sekund, a AWS EventBridge dodaje pole roku i używa ? w jednym z pól dnia, więc te trzeba dostosować.
Jak uruchamiać zadanie tylko w dni robocze albo tylko w weekend?
Ustaw dzień tygodnia na 1-5 dla dni od poniedziałku do piątku, albo 0,6 dla soboty i niedzieli. Zostaw dzień miesiąca i miesiąc jako *, żeby niczego dodatkowo nie ograniczały.
Co oznaczają skróty takie jak @daily i @hourly?
To makra, które niektóre implementacje cron akceptują zamiast pięciu pól. @hourly to 0 * * * *, @daily to 0 0 * * *, @weekly to 0 0 * * 0, @monthly to 0 0 1 * *, a @yearly to 0 0 1 1 *. Wpisz dowolne z nich w pole wyrażenia, a rozwinie się automatycznie.