Skip to main content
CheckTown
Generatory

Generator Crontab: Budowanie wyrażeń Cron dla zaplanowanych zadan

Opublikowano 6 min czytania
W tym artykule

Czym jest Crontab?

Crontab (tabela cron) to oparty na czasie harmonogram zadan w systemach operacyjnych typu Unix. Pozwala planowac automatyczne wykonywanie polecen lub skryptow w określonych odstępach czasu.

Każdy użytkownik systemu moze miec własny plik crontab. Plik zawiera liste zadan cron, gdzie każdy wiersz definiuje harmonogram za pomoca pieciopolowego wyrazu czasowego.

Skladnia wyrażeń Cron

Wyrażenie cron składa sie z pieciu pol oddzielonych spacjami:

  • Minuta (0-59) — określa, o ktorej minucie ma sie uruchomic żądanie
  • Godzina (0-23) — określa godzine w formacie 24-godzinnym
  • Dzien miesiąca (1-31) — określa dzien miesiąca
  • Miesiąc (1-12) — określa miesiąc roku
  • Dzien tygodnia (0-7, gdzie 0 i 7 to niedziela)

Znaki specjalne: * (dowolna wartość), / (wartości krokowe), - (zakresy) i przecinek (listy).

Popularne wzorce Cron

Najczęściej używane wyrażenia cron:

  • */5 * * * * — co 5 minut, typowo do kontroli stanu
  • 0 * * * * — co godzine na minucie 0
  • 0 0 * * * — codziennie o północy, standard dla kopii zapasowych
  • 0 0 * * 1-5 — każdy dzien roboczy o północy
  • 0 0 1 * * — pierwszego dnia każdego miesiąca o północy
  • 0 9,17 * * 1-5 — o 9:00 i 17:00 w dni robocze

Wypróbuj za darmo — bez rejestracji

Zbuduj wyrażenie Cron →

Typowe zastosowania

Żądania cron automatyzuja praktycznie każde powtarzalne żądanie systemowe:

  • Rotacja i czyszczenie logow — automatyczne kompresowanie lub usuwanie starych plikow logow
  • Kopie zapasowe bazy danych — planowanie regularnych polecen kopii zapasowej
  • Generowanie raportow — kompilowanie raportow dziennych, tygodniowych lub miesięcznych
  • Czyszczenie pamięci podręcznej — okresowe usuwanie wygaslych wpisow cache
  • Monitoring systemu — uruchamianie kontroli stanu w regularnych odstępach

Wskazowki i pułapki

Nawet doswiadczeni programiści napotykaja typowe pułapki cron:

  • Swiadomosc strefy czasowej — cron domyślnie używa systemowej strefy czasowej. Ustaw TZ lub użyj UTC
  • Nakładające sie żądania — użyj flock aby zapobiec jednoczesnym instancjom
  • Problemy z PATH — cron działa z minimalnym srodowiskiem. Zawsze używaj ścieżek bezwzględnych
  • Obsluga wyjścia — cron domyślnie wysyła stdout i stderr mailem. Przekieruj do pliku logu
  • Debugowanie — sprawdź /var/log/syslog lub /var/log/cron

Często zadawane pytania

Czy cron moze planowac żądania z dokładnością do sekundy?

Standardowy cron nie obsługuje sekund. Użyj obejscia lub przejdz na timery systemd.

Jaka jest różnica między cron a timerami systemd?

Cron to tradycyjny harmonogram Unix. Timery systemd oferuja dokładność poniżej minuty, ale sa specyficzne dla Linuxa.

Jak przetestowac żądanie cron?

Najpierw uruchom polecenie ręcznie, zasymuluj środowisko cron za pomoca env -i, a następnie zaplanuj uruchomienie co minute w celu weryfikacji.

Powiązane narzędzia