raatools/

Generator wyrażeń Cron

Twórz i dekoduj pięciopolowe wyrażenia cron wizualnie.

Format: minute hour day-of-month month day-of-week

Use * for any value, 0-5 for ranges, 1,3,5 for lists, */5 for every N

Cron Expression
* * * * *
Description

every minute

Czym jest cron?

Cron to standardowy harmonogram zadań znajdujący się w systemach operacyjnych Unix i Linux. Wykonuje polecenia lub skrypty w określonych godzinach i odstępach czasowych, co sprawia, że jest niezbędny dla administracji systemowej, automatyzacji DevOps i harmonogramowania zadań aplikacji backendowych. Nazwa pochodzi od greckiego słowa chronos, oznaczającego czas.

Wyrażenie cron to zwarta sekwencja pięciu pól określająca, kiedy zadanie ma być uruchamiane. Każde pole określa składnik czasu — minutę, godzinę, dzień miesiąca, miesiąc i dzień tygodnia. Razem te pięć pól może wyrażać harmonogramy od „co minutę

Składnia cron

Każde z pięciu pól przyjmuje określone wartości i znaki specjalne. Gwiazdka (*) oznacza „każdą możliwą wartość

Opis pól

  • Minuta (0–59): minuta godziny, w której uruchamia się zadanie.
  • Godzina (0–23): godzina dnia w formacie 24-godzinnym. 0 to północ, 12 to południe.
  • Dzień miesiąca (1–31): dzień kalendarzowy. Nie każdy miesiąc ma 31 dni — cron automatycznie pomija nieprawidłowe daty.
  • Miesiąc (1–12): miesiąc kalendarzowy. 1 to styczeń, 12 to grudzień.
  • Dzień tygodnia (0–6): dzień tygodnia. 0 to niedziela, 6 to sobota. Niektóre systemy akceptują też 7 dla niedzieli.

Typowe wyrażenia cron

  • 0 0 * * * — 0 0 * * * — Codziennie o północy.
  • 0 9 * * 1-5 — 0 9 * * 1-5 — W dni robocze o 9:00.
  • 0 0 1 * * — 0 0 1 * * — Pierwszego dnia każdego miesiąca o północy.
  • */15 * * * * — */15 * * * * — Co 15 minut.
  • 0 */4 * * * — 0 */4 * * * — Co 4 godziny o pełnej godzinie.

Częste błędy w cron

Najczęstszym błędem jest umieszczenie pól w złej kolejności. Cron zawsze odczytuje najpierw minutę, a potem godzinę — więc „0 9

Unikaj planowania zadań zużywających dużo zasobów dokładnie o północy (0 0 * * *), ponieważ wiele innych zadań cron uruchamia się w tym samym czasie. Rozłóż zadania o kilka minut, aby zapobiec skokom obciążenia. Uważaj też na zadania, których wykonanie trwa dłużej niż ich interwał — jeśli zadanie jest uruchamiane co minutę, ale trwa 3 minuty, będziesz miał nakładające się na siebie instancje.

Najlepsze praktyki

Zawsze przekierowuj wyjście cron do pliku dziennika (>> /var/log/myjob.log 2>&1), abyś mógł rozwiązywać problemy z błędami. Używaj bezwzględnych ścieżek do poleceń i skryptów, ponieważ cron działa z minimalnym środowiskiem PATH. Przetestuj swoje wyrażenie za pomocą takiego narzędzia jak to przed wdrożeniem na produkcję.

W przypadku złożonych potrzeb harmonogramowania rozważ alternatywy dla cron, takie jak timery systemd (Linux), Celery Beat (Python) lub harmonogramy chmurowe (AWS EventBridge, Google Cloud Scheduler). Oferują one funkcje takie jak logika ponawiania, dashboardy monitorowania i wykonywanie rozproszone, których standardowy cron nie posiada.

Często zadawane pytania

Czy cron może uruchamiać zadanie co 30 sekund?

Nie. Minimalna rozdzielczość crona to jedna minuta. Aby uruchomić zadanie co 30 sekund, zaplanuj je co minutę i dodaj 30-sekundowy sleep przed drugim wykonaniem w tym samym skrypcie. Alternatywnie użyj timera systemd lub harmonogramu specyficznego dla języka dla interwałów krótszych niż minuta.

Gdzie znajduje się plik crontab?

Crontaby użytkowników są przechowywane w /var/spool/cron/ (Red Hat/CentOS) lub /var/spool/cron/crontabs/ (Debian/Ubuntu). Edytuj swój za pomocą „crontab -e