Generator wyrażeń cron: buduj, wyjaśniaj, kolejne uruchomienia | We.Inc
Zbuduj harmonogram cron z list rozwijanych albo wklej własny, aby przeczytać go prostym językiem. Zobacz 10 kolejnych uruchomień w swojej strefie czasowej i skopiuj go dla crontab, GitHub Actions, Vercel lub Kubernetes.
Generator wyrażeń cron
Wyrażenie cron to pięć pól rozdzielonych spacjami: minuta, godzina, dzień miesiąca, miesiąc i dzień tygodnia. */5 * * * * uruchamia się co pięć minut; 0 9 * * 1-5 uruchamia się o 9:00 w dni robocze. Zbuduj je z list rozwijanych albo wklej własne, aby zobaczyć wyjaśnienie i dziesięć kolejnych uruchomień.
Pięć pól w kolejności
Pole
Dozwolone wartości
Minuta
Godzina
Dzień miesiąca
Miesiąc
1-12 lub JAN-DEC
Dzień tygodnia
0-7 lub SUN-SAT (0 i 7 to niedziela)
Wybieraj wartości pole po polu albo wklej wyrażenie. Narzędzie wyjaśnia je prostym językiem, wskazuje błędy, pokazuje dziesięć kolejnych uruchomień w dowolnej strefie czasowej i daje ten sam harmonogram gotowy dla crontab, GitHub Actions, Vercel i Kubernetes.
Wpisz lub wklej wyrażenie do pola albo kliknij jeden z gotowych ustawień. Działają też skróty, takie jak @daily i @weekly.
Możesz też użyć kreatora: każde z pięciu pól ma do wyboru każdą wartość, co N, konkretne wartości lub zakres. Wyrażenie aktualizuje się podczas wybierania.
Przeczytaj opis w prostym języku, aby sprawdzić, czy harmonogram mówi to, co miałeś na myśli. Błędy, takie jak minuta 61 lub brakujące pole, są nazywane.
Wybierz strefę czasową, aby zobaczyć dziesięć kolejnych uruchomień tak, jak nastąpiłyby tam, łącznie ze zmianami czasu letniego.
Skopiuj harmonogram w formacie, którego oczekuje Twoja platforma. Wszystko działa w Twojej przeglądarce.
Większość hostowanych harmonogramów, w tym GitHub Actions i zadania cron w Vercel, czyta harmonogram w UTC. Przelicz czas lokalny przed zapisaniem, inaczej zadanie uruchomi się kilka godzin za wcześnie lub za późno.
Jeśli wypełnisz zarówno pole dnia miesiąca, jak i dnia tygodnia, cron uruchomi zadanie, gdy pasuje którekolwiek z nich, a nie oba naraz. 0 0 13 * 5 uruchamia się każdego 13. dnia miesiąca i w każdy piątek, a nie tylko w piątek 13.
Wybierz nietypową minutę, na przykład 17 3 * * * zamiast 0 0 * * *. Ogromna liczba zadań jest ustawiona na pełną godzinę, więc współdzielone usługi i hostowane runnery są wtedy najbardziej obciążone.
Zadania zaplanowane między 01:00 a 03:00 czasu lokalnego mogą zostać pominięte lub uruchomione dwa razy przy zmianie czasu. Planuj krytyczne zadania w UTC albo poza tym oknem.
GitHub Actions nie uruchamia harmonogramów częściej niż co 5 minut i może je startować z opóźnieniem, gdy runnery są zajęte, więc nie polegaj tam na dokładnym czasie.
Najczęściej zadawane pytania
Jak napisać zadanie cron uruchamiane co 5 minut?
Użyj */5 * * * *. */5 w polu minut oznacza co piątą minutę, zaczynając od 0, więc uruchamia się o :00, :05, :10 i tak dalej. Dla co 10 lub 15 minut zmień liczbę na 10 lub 15.
Co oznacza */ w cron?
Ukośnik ustawia krok. */15 w polu minut oznacza co 15. minutę godziny: 0, 15, 30 i 45. Krok można też stosować w zakresie: 9-17/2 w polu godzin oznacza 9, 11, 13, 15 i 17.
Czy niedziela w cron to 0 czy 7?
Jedno i drugie. Standardowy cron akceptuje 0 i 7 dla niedzieli, a potem od 1 dla poniedziałku do 6 dla soboty. Nazwy dni, takie jak SUN i MON, całkowicie omijają ten problem.
Dlaczego moje wyrażenie ma sześć lub siedem pól?
Quartz, Spring i niektóre chmurowe harmonogramy dodają pole sekund na początku, a czasem rok na końcu. Standardowy crontab, GitHub Actions, Vercel i Kubernetes używają pięciu pól. To narzędzie czyta formę pięciopolową; usuń pole sekund, aby sprawdzić resztę.
Jakiej strefy czasowej używa cron?
Crontab używa strefy czasowej serwera, na którym działa, chyba że system obsługuje ustawienie CRON_TZ lub TZ. GitHub Actions i Vercel używają UTC. CronJoby w Kubernetes używają strefy czasowej kontrolera, chyba że ustawisz pole timeZone w specyfikacji.
Jak czytać wyrażenie cron
Czytaj pola od lewej do prawej: o tej minucie, tej godziny, w ten dzień miesiąca, w tym miesiącu, w ten dzień tygodnia. Gwiazdka oznacza dowolną wartość. Zatem 30 6 * * 1 czyta się: w minucie 30 godziny 6, w dowolny dzień miesiąca, w dowolnym miesiącu, w poniedziałek. Czyli o 06:30 w każdy poniedziałek.
Każde pole może zawierać pojedynczą wartość, listę (1,15), zakres (1-5), krok (*/10) lub ich połączenie (0-30/10,45). Kreator na tej stronie zapisuje je za Ciebie, a linia opisu odczytuje wynik, abyś mógł go sprawdzić.
Pułapka dnia miesiąca i dnia tygodnia
Gdy oba pola dni mają wartość inną niż gwiazdka, cron traktuje je jako alternatywy. Zadanie ustawione na 0 0 1 * 1 uruchamia się pierwszego dnia miesiąca i w każdy poniedziałek. Zaskakuje to wiele osób, które spodziewały się pierwszego poniedziałku miesiąca.
Cron nie potrafi bezpośrednio wyrazić pierwszego poniedziałku. Typowe obejście to zaplanowanie 0 0 1-7 * * i zakończenie skryptu, jeśli dzień nie jest poniedziałkiem, albo użycie harmonogramu z własną składnią do tego celu.
Gdzie będzie działać Twój harmonogram
Każda z poniższych platform używa tych samych pięciu pól, ale opakowuje je inaczej, a niektóre dodają własne zasady. Skopiuj z narzędzia fragment dla swojej, a potem sprawdź w jej dokumentacji limity częstotliwości zadań w Twoim planie.
Co 5 minut
Co 15 minut
Co godzinę, o pełnej godzinie
Co 6 godzin
Codziennie o północy
Dni robocze o 9:00
Piątki o 17:30
Niedziele o 3:00
Pierwszy dzień każdego miesiąca
Pierwszy dzień każdego kwartału o 8:00
Co 10 minut w godzinach pracy
Raz w roku, 1 stycznia
Co oznacza każdy znak w polu cron
Symbol
Znaczenie
Przykład
Czyta się jako
Każda wartość
* w polu godzin
Co godzinę
Lista wartości
1,15 w polu dnia
1. i 15. dnia
Zakres
1-5 w polu dnia tygodnia
Od poniedziałku do piątku
Krok w zakresie
*/10 w polu minut
Minuty 0, 10, 20, 30, 40, 50
JAN-DEC
Nazwy miesięcy (dowolna wielkość liter)
Od czerwca do sierpnia
SUN-SAT
Nazwy dni; 0 i 7 to niedziela
sat,sun
Weekendy
@daily
Skrót dla 0 0 * * *
@hourly, @weekly, @monthly, @yearly
To samo co forma pięciopolowa
Minuta
Godzina
Dzień miesiąca
Miesiąc
Dzień tygodnia
Sty
Mar
Kwi
Maj
Cze
Lip
Sie
Wrz
Paź
Lis
Nd
Pn
Wt
Śr
Cz
Pt
Sb
Tryb pola {field}
Każda
Co N
Konkretne
Zakres
Krok pola {field}
Wartości pola {field}, rozdzielone przecinkami
{field} od
{field} do
Twój harmonogram
Wyrażenie cron
Kopiuj wyrażenie
Zbuduj je pole po polu
Zmiana dowolnego pola poniżej zastępuje wyrażenie powyżej.
Kolejne 10 uruchomień
Strefa czasowa
Wczytywanie Twojego zegara…
Brak uruchomień w ciągu najbliższych pięciu lat. Sprawdź pola dnia i miesiąca, na przykład 31 w miesiącu, który ma 30 dni.
Popraw wyrażenie, aby zobaczyć czasy uruchomień.
Uruchomienia są oddalone o mniej niż 5 minut. GitHub Actions nie zaplanuje tego tak często.
Skopiuj dla swojej platformy
Kopiuj fragment
Dodaj linię przez crontab -e. Działa w strefie czasowej serwera; zastąp polecenie własnym.
Trafia do pliku workflow w .github/workflows. GitHub czyta harmonogram w UTC.
Vercel czyta harmonogram w UTC i wywołuje podaną ścieżkę żądaniem GET.
Pole timeZone ustawia, w jakiej strefie czytany jest harmonogram. Zastąp obraz i polecenie swoim zadaniem.