Jak budować wyrażenia cron
Wyrażenia cron to standardowy sposób definiowania powtarzających się harmonogramów w Linuxie, platformach chmurowych, potokach CI/CD i harmonogramach zadań. Składnia jest kompaktowa, ale mało intuicyjna — wizualny generator pokazuje Ci dokładnie, kiedy Twoje zadanie się uruchomi.
Składnia cron
Wyrażenie cron ma 5 pól:
┌───────────── minuta (0-59)
│ ┌───────────── godzina (0-23)
│ │ ┌───────────── dzień miesiąca (1-31)
│ │ │ ┌───────────── miesiąc (1-12)
│ │ │ │ ┌───────────── dzień tygodnia (0-6, niedziela=0)
│ │ │ │ │
* * * * *
Częste harmonogramy cron
| Harmonogram | Wyrażenie | Znaczenie |
|---|---|---|
| Co minutę | * * * * * |
Uruchamia się co 60 sekund |
| Co 5 minut | */5 * * * * |
O :00, :05, :10, :15... |
| Co godzinę | 0 * * * * |
Na początku każdej godziny |
| Codziennie o północy | 0 0 * * * |
Raz dziennie o 00:00 |
| Codziennie o 9 | 0 9 * * * |
Raz dziennie o 09:00 |
| W każdy poniedziałek o 8 | 0 8 * * 1 |
Tygodniowo w poniedziałki |
| Pierwszego każdego miesiąca | 0 0 1 * * |
Miesięcznie o północy 1. |
| Dni robocze o 18 | 0 18 * * 1-5 |
Od poniedziałku do piątku |
Jak zbudować wyrażenie cron
- Zdefiniuj swój harmonogram — użyj wizualnych kontrolek, aby wybrać wartości minuty, godziny, dnia, miesiąca i dnia tygodnia. Lub zacznij od gotowego ustawienia jak „co godzinę” lub „codziennie o północy”.
- Podejrzyj uruchomienia — generator wyświetla 5 kolejnych uruchomień, aby zweryfikować, że harmonogram jest poprawny.
- Skopiuj wyrażenie — wklej je do swojego crontab, konfiguracji CI/CD lub harmonogramu chmurowego.
Znaki specjalne
| Znak | Znaczenie | Przykład |
|---|---|---|
* |
Każda wartość | * * * * * = co minutę |
*/n |
Co n | */15 * * * * = co 15 min |
, |
Wiele wartości | 0 8,12,18 * * * = 8, 12, 18 |
- |
Zakres | 0 9-17 * * * = co godzinę od 9 do 17 |
Wskazówki
- Zawsze sprawdzaj kolejne uruchomienia — wyrażenia cron łatwo pomylić. Podgląd pokazuje dokładnie, kiedy zadanie zostanie wyzwolone, sprawdź przed wdrożeniem.
- Zaczynaj od gotowych ustawień — zacznij od częstego harmonogramu jak „dziennie” lub „co godzinę” i dostosuj, zamiast pisać od zera.
- Uważaj na strefę czasową — godziny cron są w strefie czasowej systemu (zazwyczaj UTC na serwerach). Jeśli chcesz 9:00 w Warszawie, to
0 7 * * *w UTC podczas czasu letniego. - Testuj z krótkimi interwałami — przy konfigurowaniu nowego crona przetestuj z
*/5 * * * *(co 5 minut), aby potwierdzić, że działa, a następnie przejdź na finalny harmonogram.
Najczęściej zadawane pytania
Jaki jest format wyrażenia cron?
Standardowe wyrażenie cron ma 5 pól oddzielonych spacjami, reprezentujących minutę (0-59), godzinę (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ść dla tego pola.
Co oznacza */5 w cron?
Składnia */5 oznacza „co 5”. W polu minut */5 oznacza co 5 minut (0, 5, 10, 15...). W polu godzin */5 oznacza co 5 godzin. Działa to w dowolnym polu.
Czy wyrażenia cron są identyczne na wszystkich platformach?
Format 5-polowy jest standardowy w Linux cron, AWS EventBridge, GitHub Actions i większości systemów planowania. Niektóre platformy dodają 6. pole dla sekund lub roku. Skonsultuj dokumentację swojej platformy.
Jak zaplanować na ostatni dzień każdego miesiąca?
Standardowy cron nie ma słowa kluczowego „ostatni dzień”. Użyj obejścia, takiego jak codzienne uruchomienie ze sprawdzeniem daty w skrypcie, lub użyj rozszerzeń specyficznych dla platformy (AWS EventBridge obsługuje L dla „last”).