Przykłady Crontab: Rzeczywiste harmonogramy

Teoria jest ważna, ale zobaczenie wyrażeń cron w kontekście z rzeczywistymi przypadkami użycia sprawia, że składnia staje się zrozumiała. Ta kolekcja obejmuje najczęstsze scenariusze planowania, z którymi się spotkasz, od prostej automatyzacji po złożone harmonogramy produkcyjne.

Podstawowe interwały czasowe

Co minutę: "* * * * *" - Używaj dla monitorowania o wysokiej częstotliwości lub testów (ale uważaj na obciążenie systemu przy wykonywaniu co minutę).

Co 5 minut: "*/5 * * * *" - Powszechne dla zadań o umiarkowanej częstotliwości jak sprawdzanie głębokości kolejki, odpytywanie API z limitami lub aktualizacje cache.

Co 10 minut: "*/10 * * * *" - Równoważy responsywność ze zmniejszonym narzutem dla dashboardów monitoringu lub agregacji logów.

Co 15 minut: "*/15 * * * *" - Ćwiartkogodzinne zadania jak zbieranie metryk, czyszczenie plików tymczasowych lub zarządzanie sesjami.

Co 30 minut: "*/30 * * * *" - Półgodzinne sprawdzenia dla przetwarzania e-maili, synchronizacji danych lub raportów o umiarkowanej częstotliwości.

Co godzinę: "0 * * * *" - Godzinne zadania uruchamiają się o pełnej godzinie. Powszechne dla rotacji logów, agregacji godzinowej lub regularnych kopii zapasowych.

Co 2 godziny: "0 */2 * * *" - Zmniejszona częstotliwość dla zadań, które nie potrzebują wykonania co godzinę, jak kompleksowe sprawdzenia stanu lub pomocnicze kopie zapasowe.

Co 6 godzin: "0 */6 * * *" - Ćwiartkodobowe zadania o północy, 6:00, 12:00 i 18:00. Przydatne dla rozproszonego przetwarzania w ciągu dnia.

Co 12 godzin: "0 */12 * * *" - Dwa razy dziennie o północy i w południe dla półdobowych zadań jak przetwarzanie wsadowe lub eksporty danych.

Te wzorce interwałowe stanowią podstawę większości zaplanowanej automatyzacji. Wybierając częstotliwość, równoważ aktualność (jak szybko musisz wykrywać zmiany lub przetwarzać dane) z zasobami systemowymi (każde zadanie zużywa CPU, pamięć i I/O).

Harmonogramy dzienne i tygodniowe

Codziennie o północy: "0 0 * * *" - Klasyczny czas na codzienne kopie zapasowe, archiwizację logów, konserwację bazy danych i nocne przetwarzanie wsadowe.

Codziennie o 2:00: "0 2 * * *" - Przesunięcie od północy, aby uniknąć konfliktów, gdy wiele zadań domyślnie uruchamia się o północy. Dobre dla optymalizacji bazy danych lub raportowania.

Codziennie o 6:00: "0 6 * * *" - Przetwarzanie przed godzinami pracy, aby przygotować systemy na dzień. Rozgrzewanie cache, importy danych lub poranne raporty.

Codziennie o 12:00: "0 12 * * *" - Przetwarzanie w południe dla raportów południowych lub systemów wymagających aktualizacji w godzinach pracy.

Codziennie o 18:00: "0 18 * * *" - Przetwarzanie po zamknięciu biznesu dla codziennych podsumowań, eksportów lub przygotowania nocnych zadań.

Dni robocze o 9:00: "0 9 * * 1-5" - Poranne zadania od poniedziałku do piątku jak wysyłanie raportów dni roboczych, uruchamianie usług godzin pracy lub integracje tylko dla dni roboczych.

Wieczory dni roboczych: "0 18 * * 1-5" - Przetwarzanie na koniec dnia roboczego dla danych biznesowych, które gromadzą się tylko w dni robocze.

Poranki weekendowe: "0 8 * * 6,7" - Przetwarzanie w sobotę i niedzielę dla zadań, które powinny unikać obciążenia dni roboczych.

Poniedziałki rano: "0 9 * * 1" - Tygodniowe zadania na początek tygodnia jak wysyłanie raportów na początek tygodnia, czyszczenie tygodniowych cache lub przetwarzanie specyficzne dla poniedziałków.

Piątki wieczorem: "0 17 * * 5" - Przetwarzanie weekendowe dla tygodniowych podsumowań, piątkowych wdrożeń lub eksportów weekendowych.

Niedziele wieczorem: "0 23 * * 0" - Tygodniowe przetwarzanie przed początkiem tygodnia. Pełne tygodniowe kopie zapasowe, kompleksowa konserwacja lub archiwizacja weekendowa.

Dzienne wzorce powinny uwzględniać implikacje stref czasowych, szczególnie dla systemów globalnych. Zadanie o północy UTC uruchamia się o różnych czasach lokalnych dla użytkowników na całym świecie.

Harmonogramy miesięczne i specjalistyczne

Pierwszy dzień miesiąca: "0 0 1 * *" - Miesięczne zadania początkowe jak miesięczne kopie zapasowe, cykle rozliczeniowe, miesięczne raporty lub przetwarzanie subskrypcji.

Środek miesiąca: "0 0 15 * *" - Przetwarzanie w połowie miesiąca dla dwutygodniowej listy płac, miesięcznych sprawdzeń lub podziału miesięcznej pracy.

Pierwszy poniedziałek miesiąca: Wymaga to skryptu, który sprawdza datę, ponieważ standardowy cron nie może wyrazić "pierwszego poniedziałku". Użyłbyś "0 0 1-7 * 1", co uruchamia się przez pierwsze siedem dni, gdy są poniedziałkiem, a następnie twój skrypt sprawdza, czy jest to faktycznie pierwsze wystąpienie.

Ostatni dzień miesiąca: Standardowy cron nie może tego wyrazić bezpośrednio (wymagałby "0 0 L * *" w rozszerzonej składni). Użyj skryptu, który uruchamia się codziennie i sprawdza, czy jutro jest pierwszym.

Kwartalnie (pierwszy dzień stycznia, kwietnia, lipca, października): "0 0 1 1,4,7,10 *" - Raporty kwartalne, zadania zgodności lub przetwarzanie sezonowe.

Rocznie (1 stycznia): "0 0 1 1 *" - Roczne zadania jak roczna archiwizacja, raporty roczne, odnowienia licencji lub przetwarzanie rocznicowe.

Tylko miesiące letnie (czerwiec-sierpień): "0 0 * 6-8 *" - Zadania sezonowe, które dotyczą tylko określonych miesięcy.

Tylko godziny pracy (9:00 - 17:00 dni robocze): "0 9-17 * * 1-5" - Godzinne zadania podczas godzin pracy dla systemów skierowanych do klientów lub zewnętrznych integracji.

Godziny nocne (23:00 - 5:00): "0 23-5 * * *" - Nocne przetwarzanie, gdy obciążenie systemu jest najniższe. Uwaga: zakresy nie obejmują północy w standardowym cron; użyj dwóch wpisów "0 23 * * *" i "0 0-5 * * *" zamiast tego.

Każdy dzień roboczy o wielu porach (rano i po południu): "0 9,14 * * 1-5" - Dwa razy dziennie w dni robocze o 9:00 i 14:00 dla regularnych sprawdzeń.

Złożone harmonogramy często wymagają wielu wpisów cron lub skryptów, które wykonują dodatkowe sprawdzenia daty wykraczające poza to, co może wyrazić składnia cron.

Wypróbuj Narzędzie

Crontab Generator

Crontab Generator

Powiązane Artykuły