Summary
Ten generator wyrażeń cron buduje i sprawdza standardowe harmonogramy cron z pięciu pól, bezpośrednio w przeglądarce. Wybierz gotowy wzorzec albo edytuj pola: minuta, godzina, dzień miesiąca, miesiąc i dzień tygodnia. Narzędzie opisuje harmonogram zwykłym językiem, pokazuje każde pole szczegółowo i wylicza kolejne pięć czasów uruchomienia w UTC albo w Twojej strefie czasowej. Stosuje standardową regułę łączenia dnia miesiąca z dniem tygodnia. Nic nie jest wysyłane na serwer i nie trzeba się rejestrować.
Generator wyrażeń cron: buduj i sprawdzaj harmonogramy w kilka sekund
Wybierz gotowy wzorzec albo wpisz pięć pól. Dostajesz opis zwykłym językiem, rozbicie pole po polu i kolejnych pięć czasów uruchomienia, wszystko liczone lokalnie.
Co narzędzie robi z pięcioma polami
Analizuje każde pole osobno
Każde pole przyjmuje pojedynczą wartość, listę (1,15), zakres (1-5), krok (*/10) albo ich mieszankę. Nazwy miesięcy i dni, takie jak JAN albo MON-FRI, też działają. Wartości poza zakresem i odwrócone zakresy są zgłaszane przy konkretnym polu, które jest błędne.
Stosuje prawdziwą regułę dopasowania cron
Czas pasuje, gdy minuta, godzina i miesiąc są na Twoich listach, a test dnia jest zaliczony. Jeśli dzień miesiąca i dzień tygodnia są oba ograniczone, cron przyjmuje którykolwiek z nich. Jeśli któreś z nich zaczyna się od gwiazdki, muszą pasować oba.
Przechodzi kalendarz, żeby wyliczyć przyszłe uruchomienia
Od bieżącej minuty skrypt przechodzi dzień po dniu, zostawia dni, które przechodzą test, a potem wypisuje pasujące godziny i minuty po kolei. Sprawdza do ośmiu lat w przód, co wystarcza, żeby znaleźć harmonogram na 29 lutego.
Pięć pól w kolejności, w jakiej czyta je cron
Linia cron to pięć pól oddzielonych spacjami, po których następuje polecenie. Kolejność się nie zmienia: minuta, godzina, dzień miesiąca, miesiąc, dzień tygodnia. Większość błędów bierze się z zamiany dwóch pierwszych, przez co harmonogram na 14:00 uruchamia się w minucie 14 każdej godziny. Czytaj od lewej do prawej i wypowiedz pola na głos, zanim cokolwiek zatwierdzisz.
- Minuta: 0-59
- Godzina: 0-23, zegar 24-godzinny
- Dzień miesiąca: 1-31
- Miesiąc: 1-12 albo JAN-DEC
- Dzień tygodnia: 0-7 albo SUN-SAT, gdzie 0 i 7 oznaczają niedzielę
- Symbole: * dla każdej wartości, , dla listy, - dla zakresu, / dla kroku
Pułapki cron, które kosztują cały weekend
Środowisko jest prawie puste
Cron uruchamia zadania z minimalnym PATH i bez profilu powłoki. Skrypt, który działa w terminalu, może po cichu zawieść w cronie. Używaj ścieżek bezwzględnych dla polecenia i każdego pliku, który czyta, a wyjście przekieruj do pliku logu, żeby widzieć błędy.
Znak procenta kończy polecenie
W linii crontab niezamieniony znak % jest traktowany jako znak nowej linii, a wszystko po nim trafia do polecenia jako wejście. Formaty dat, takie jak date +%F, wymagają zamiany każdego % na znak poprzedzony ukośnikiem wstecznym. Umieść polecenie w skrypcie, a problem zniknie.
Co minutę to rzadko to, czego chcesz
Zadanie uruchamiane co minutę, które trwa 90 sekund, będzie nakładać się samo na siebie. Zabezpiecz długie zadania blokadą albo przenieś je do kolejki. Jeśli potrzebujesz czegoś co kilka minut, krok taki jak */5 jest łagodniejszy i mniej obciąża to, co zadanie wywołuje.
Strefa czasowa nie jest Twoja
Crontab używa strefy czasowej serwera. Hostowane harmonogramy zwykle działają w UTC. Zadanie ustawione na 09:00 może wystartować o 17:00 w Tajpej albo o 04:00 w Bangkoku, zależnie od tego, gdzie stoi maszyna. Zapisz strefę czasową w komentarzu obok linii.
Dzień tygodnia i dzień miesiąca łączą się jako LUB
Ograniczenie obu pól nie zawęża harmonogramu, tylko go poszerza. Jeśli chcesz pierwszy poniedziałek miesiąca, żadne wyrażenie pięciopolowe nie powie tego wprost. Uruchamiaj zadanie w każdy poniedziałek i pozwól skryptowi sprawdzić, czy data to 7 lub mniej.
Testuj harmonogram przed zadaniem
Najpierw sprawdź tu kolejne pięć uruchomień, potem uruchom polecenie ręcznie z tym samym środowiskiem. Dwa krótkie sprawdzenia wygrywają z debugowaniem nocnej kopii zapasowej, która nigdy nie ruszyła. Zacznij od nieszkodliwego polecenia, na przykład zapisania daty do pliku.
Pytania o wyrażenia cron
Czy ten generator wyrażeń cron jest darmowy i czy wysyła gdzieś mój harmonogram?
Ile pól ma wyrażenie cron?
Dlaczego moje zadanie uruchamia się w dni, których się nie spodziewałem, gdy ustawiłem dzień miesiąca i dzień tygodnia?
Która strefa czasowa obowiązuje w czasach kolejnych uruchomień?
Czy to samo wyrażenie działa w GitHub Actions, Kubernetes i crontab?
Co oznacza krok, taki jak */15 albo 10/20?
Czy mogę użyć nazw, takich jak MON-FRI albo JAN?
Co się dzieje przy zmianie czasu letniego i zimowego?
Szukasz następnej rzeczy do zbudowania?
Zadanie cron to dobry pierwszy backend dla projektu pobocznego. Darmowy generator na stronie głównej podaje gotową specyfikację projektu, ze stosem i zakresem, jednym kliknięciem.