Summary

Ten generator wyrażeń cron przekształca opis harmonogramu lub wklejony ciąg cron w zweryfikowane wyrażenie 5-polowe: minuty, godziny, dzień miesiąca, miesiąc i dzień tygodnia. Wybierz powszechny preset, taki jak co 5 minut lub w dni robocze o 9 rano, lub edytuj bezpośrednio każde pole ze wsparciem dla zakresów, list i wartości kroków. Narzędzie generuje uproszczony opis harmonogramu i oblicza kolejnych pięć czasów uruchamiania w UTC, używając tej samej logiki OR dla pól dnia miesiąca i dnia tygodnia, co vixie-cron i Kubernetes CronJob, zatem widoczne tutaj harmonogramy dokładnie odpowiadają rzeczywistym uruchomieniom w produkcji.

Generator wyrażeń cron do zaplanowanych zadań i okien wdrażania

Utwórz wyrażenie cron 5-polowe na podstawie presetów lub wklej je, aby sprawdzić. Uzyskaj uproszczony opis i kolejnych pięć czasów uruchamiania przed uruchomieniem harmonogramu.

Generator wyrażeń cron

Wybierz pola lub preset poniżej. Wyrażenie, uproszczony opis i kolejne pięć czasów uruchamiania aktualizują się podczas pisania.

0 9 * * 1-5

Pod maską

Jak działa ten generator wyrażeń cron

Pięć pól, standardowa składnia

Minuty, godziny, dzień miesiąca, miesiąc i dzień tygodnia: te same pola, które odczytuje crontab, harmonogram GitHub Actions i Kubernetes CronJob. Zakresy (9-17), listy (1,15,30), kroki (*/5) i symbole wieloznaczne analizują się w taki sam sposób jak w produkcji.

Pola dnia są połączone OR, a nie AND

Ustaw dzień miesiąca na 1 i dzień tygodnia na poniedziałek, a zadanie będzie uruchamiane pierwszego dnia miesiąca lub w każdy poniedziałek, a nie tylko wtedy, gdy oba się zgadzają. Tak właśnie vixie-cron i Kubernetes CronJob to oceniają, i to jest szczegół, który pomijają większość generatorów.

Kolejne pięć uruchomień, obliczane na bieżąco

Każda edycja ponownie oblicza pięć znaczników czasu UTC, przesuwając się w przód przez rzeczywisty kalendarz, dzięki czemu harmonogram, który nigdy nie może się uruchomić, taki jak dzień 30 lutego, pojawia się tutaj jako pusty zamiast po cichu leżeć martwy w crontab.

Wklej, aby sprawdzić, nie tylko do budowania

Już masz ciąg cron od kolegi z zespołu, manifestu CronJob lub starej odpowiedzi na Stack Overflow? Wklej go do pola i uzyskaj ten sam opis i czasy uruchamiania, bez potrzeby oddzielnego walidatora.

Jak go używać

Od pustych pól do harmonogramu, któremu ufasz

  1. 1

    Zacznij od presetów

    Wybierz wspólny harmonogram (co 5 minut, w dni robocze o 9 rano, miesięcznie pierwszego dnia), lub pozostaw ustawienia domyślne i dostosuj je.

  2. 2

    Dostosuj pola, które mają znaczenie

    Używaj szybkich list rozwijanych lub wpisuj bezpośrednio: listy rozdzielone przecinkami, myślniki dla zakresów i */N dla kroków działają w każdym polu.

  3. 3

    Potwierdź przed wdrożeniem

    Przeczytaj uproszczony opis i sprawdź kolejnych pięć czasów uruchamiania względem okna konserwacji lub budżetu SLO, następnie skopiuj wyrażenie do pliku crontab, harmonogramu CI lub manifestu CronJob.

Szczegół implementacji

Dlaczego pola dnia miesiąca i dnia tygodnia używają logiki OR

POSIX/vixie-cron, implementacja leżąca u podstaw systemu Linux crontab i Kubernetes CronJob, ma dziwną regułę, którą większość ludzi nigdy nie przechodzi. Jeśli oba pola dnia miesiąca i dnia tygodnia są ograniczone z dala od *, zadanie uruchamia się, gdy jedno z nich się zgadza, a nie tylko wtedy, gdy oba się zgadzają. Ustaw dzień miesiąca na 1 i dzień tygodnia na poniedziałek, a harmonogram będzie uruchamiany pierwszego dnia miesiąca i w każdy poniedziałek, a nie tylko w poniedziałek, który zdarza się być pierwszym. Pozostaw którekolwiek z pól jako *, a tylko ograniczone pole będzie ograniczać dzień. Ten generator podąża za tą konwencją, ponieważ to jest to, co faktycznie uruchamia twój crontab, a nie uproszczoną wersję. To ma znaczenie przede wszystkim dla rodzaju harmonogramu, który zespół platformy pisze o 23:00: uruchom to pierwszego dnia roboczego lub pierwszego dnia miesiąca, w zależności od tego, co nastąpi wcześniej, wygląda na AND dla większości ludzi i zachowuje się jak OR w produkcji.

  • POSIX/vixie-cron (Linux crontab, Kubernetes CronJob): OR po ograniczeniu któregokolwiek pola dnia
  • Quartz cron (powszechne w harmonogramach opartych na Javie): zwykle wymaga, aby jedno z dwóch pól dnia pozostało ? zamiast *, całkowicie unikając niejasności
  • Ten generator podąża za konwencją POSIX/vixie-cron, ponieważ to właśnie crontab i CronJob faktycznie wykonują
Makro zegarek analogowy z kołami zębatymi przed rozmytą serwerownia

Częste pytania

Czy ten generator wyrażeń cron jest bezpłatny?
Tak. Działa całkowicie w Twojej przeglądarce, bez konta, bez ograniczenia szybkości i bez wysyłania danych nigdzie poza anonimową sygnalizacją widoku strony.
W jakiej strefie czasowej wyświetlane są kolejne czasy uruchamiania?
UTC. Większość crontabów, harmonogramów GitHub Actions i zasobów Kubernetes CronJob domyślnie ustawia się na UTC lub czas systemowy kontenera, dzięki czemu unika się błędu konwersji strefy czasowej. Potwierdź własną strefę czasową systemu przed poleganiem na dokładnej minucie.
Dlaczego dzień miesiąca 1 i dzień tygodnia poniedziałek uruchamiają się na obu, a nie tylko gdy się pokrywają?
Ponieważ tak zachowuje się sam cron. Standardowe implementacje vixie-cron, w tym Linux crontab i Kubernetes CronJob, oceniają te dwa pola za pomocą logiki OR, gdy jedno z nich jest ograniczone z dala od *. To narzędzie celowo dopasowuje to zachowanie.
Czy obsługuje @daily, @reboot lub inne makra skrótów?
Nie, tylko pięć standardowych pól numerycznych, ponieważ to właśnie wymaga większość orkiestrow. @daily mapuje do 0 0 * * *, @hourly do 0 * * * * i @weekly do 0 0 * * 0.
Czy mój harmonogram jest wysyłany na serwer?
Nie. Analiza, uproszczony opis i obliczenie następnego uruchomienia działają po stronie klienta. Nic z pól, które wpisujesz, nie jest przesyłane ani przechowywane.
Czy obliczanie następnego uruchomienia uwzględnia czas letni?
Nie, wszystko jest obliczane w UTC, które nie ma czasu letniego. Jeśli system uruchamiający demon cron używa czasu lokalnego z obsługą czasu letniego, oddzielnie sprawdź przesunięcie wokół dat przejścia dwa razy w roku.
Czy mogę wpisać nazwy miesięcy lub dni tygodnia zamiast liczb?
Tak. Skróty jan do dec i sun do sat działają w polach miesiąc i dzień tygodnia obok zakresów numerycznych 1-12 i 0-6, również w zakresach i listach.

Zadanie cron uruchamia się. Co kontroluje wdrażanie, które ono wyzwala?

upstreamapi wiąże wdrażania flag funkcji z budżetem SLO, dzięki czemu wdrażanie wyzwolone przez cron może się automatycznie wycofać zanim pager zaalarmuje, a nie po.