Uruchomienie jednego zadania nie brzmi jak wyzwanie dla człowieka, co jednak gdy chcemy je wykonać w środku nocy, gdy zdecydowanie bardziej chcielibyśmy spać? Uruchamianie skryptu ręcznie co kilka minut również nie wygląda zachęcająco? Na szczęście nie musimy robić tego manualnie, nie musimy też nikogo do tego zatrudniać, chyba że uznamy że serwer jest kimś, co w czasach wszechobecnej sztucznej inteligencji, jest co najmniej kwestią kontrowersyjną, wystarczy tutaj skonfigurować zadanie Cron, które wykona większość pracy za nas.

W tym artykule przybliżę Ci:
  • Czym jest systemowy harmonogram zadań cron
  • Jak skonfigurować zadanie
  • Praktyczne zastosowania zadań cron
  • Jak wyłączyć automatycznego cron’a w WordPress

Czym jest systemowy harmonogram zadań cron

Cron to systemowy harmonogram zadań używany w systemach operacyjnych Unix i Unix-podobnych (w tym Linux) do automatyzacji zadań. Dzięki cron możesz ustawić cykliczne wykonywanie skryptów, komend, czy innych programów w określonych odstępach czasu.

Gdy mamy już zaplanowane zadanie, serwer za pośrednictwem daemona “crond”, uruchamia zadania. Jest to swoiste serce, zegar, który co minutę wprawia w ruch kolejne zadania, według ustalonego harmonogramu.

Konfiguracja zadania cron

Nie zwalniamy tempa i przechodzimy do konfiguracji zadania. Możemy zrobić to na dwa sposoby, wprowadzając je w odpowiedniej formie – składni, do pliku crontab, lub korzystając z graficznego interfejsu użytkownika (GUI).

Informujemy: na naszym hostingu masz dostęp do wspomnianego interfejsu, który jest połączony z plikiem crontab. Gdy dokonamy zmian w jednym miejscu, będą one widoczne również w drugim. Aby go uruchomić przejdź do Panelu Klienta i wybierz Zaawansowane, a następnie Zadania cykliczne (cron).

Na potrzeby tego poradnika wybiorę właśnie wersję graficzną.

Po przejściu do  konfiguracji zadań cron powita Cię krótka ściąga (1) odnosząca się do samego harmonogramu. Zawiera ona najpotrzebniejsze informacje, dzięki którym przypomnisz sobie jak to wykonywać.

Natomiast główna sekcja (2) zawiera już możliwość odpowiedniej konfiguracji całego zadania, wraz z ustawieniem komendy (3), która ma być wykonywana.

Konfiguracja cron

Najmniejszą jednostką czasu jaką możemy operować to minuta, więc zadania będą uruchamiane co do minuty, z kolei największa częstotliwość z jaką zadanie może być wykonywane to co minutę.

Domyślne ustawienie które zastaniesz w interfejsie utworzy zadanie, które będzie wykonywało się co minutę, a to za sprawą * gwiazdek w każdym z 5 pól. Gwiazdka działa jako  wyrażenie regularne i zastępuje każdą liczbę. Opisując to słowami, komenda będzie wykonywana każdego dnia tygodnia, każdego miesiąca, każdego dnia danego miesiąca, w każdej godzinie i każdej minucie.

Warto od razu przedstawić inne wyrażenie regularne, czyli znak slash: /

Razem z gwiazdką daje on możliwości ustawienia przedziału czasowego w trochę innej formie, na przykład:

  1. Co dwie minuty
    Minuta: */2
  2. Co 12 godzin
    Godzina: */12
  3. Co trzeci miesiąc
    Miesiąc: */3

Ostatnie dwa wyrażenia to przecinek i myślnik.

Przecinek daje możliwość podania danych wartości liczbowych w jednym polu. Dla przykładu:


Komenda będzie się wykonywała tylko w niedzielę, środę i czwartek.

Dzień tygodnia: 0,3,4

Informujemy: Niedziela może być określana wartością 0 lub 7.

Komenda będzie się wykonywała od 1 do 5 danego miesiąca, od 7 do 10, a również 15 i 23:
Dzień miesiąca: 1-5,7-10,15,23

Praktyczne zastosowania zadań cron

Przykład 1: Uruchamianie skryptu PHP codziennie o 2:00 w nocy

Harmonogram:

  • Minuta: 0
  • Godzina: 2
  • Dzień miesiąca: *
  • Miesiąc: *
  • Dzień tygodnia: *
  • Komenda: /usr/local/bin/php80 /home/poradnik/scripts/skrypt.php

Przykład 2: Uruchamianie skryptu co godzinę

Harmonogram:

  • Minuta: 0
  • Godzina: *
  • Dzień miesiąca: *
  • Miesiąc: *
  • Dzień tygodnia: *

Komenda: wget -q -O /dev/null „https://domena.pl/skrypt.php” >/dev/null 2>&1

Przykład 3: Automatyczne odświeżanie bazy danych co godzinę w godzinach pracy (od 8:00 do 18:00) od poniedziałku do piątku

Harmonogram:

  • Minuta: 0
  • Godzina: 8-18
  • Dzień miesiąca: *
  • Miesiąc: *
  • Dzień tygodnia: 1-5 (poniedziałek-piątek)

Komenda: /usr/local/bin/php82 /home/poradnik/domena.pl/public_html/baza.php

Przykład 4: Synchronizacja danych z serwerem zdalnym (backup) codziennie o północy:

Harmonogram:

  • Minuta: 0
  • Godzina: 0
  • Dzień miesiąca: *
  • Miesiąc: *
  • Dzień tygodnia: *

Komenda: /usr/local/bin/rsync -avz /home/poradnik/dane/ user@zewnętrzny_serwer:/backup/data/

Jak wyłączyć automatycznego cron’a w WordPress

Wyłączenie automatycznego cron’a w WordPress i przejście na systemowy cron może zwiększyć wydajność Twojej strony, zwłaszcza w przypadku stron o dużym ruchu lub specyficznych wymaganiach dotyczących zarządzania zadaniami cron. Po wykonaniu powyższych kroków, zadania cron w WordPress będą zarządzane przez systemowy cron, co zapewni bardziej niezawodne i regularne wykonywanie zaplanowanych zadań.

Informujemy: Jeśli chcesz przyspieszyć działanie swojego WordPress’a przeczytaj nasz artykuł Jak zoptymalizować wydajność i szybkość swojej strony internetowej?

Przechodzimy do działania:

Krok 1.
Edytuj plik wp-config.php:

Zaloguj się na serwer, na którym zainstalowany jest WordPress, za pomocą FTP, SFTP lub menedżera plików w panelu administracyjnym hostingu.

Informujemy: Jeśli nie wiesz w jaki sposób zalogować się do konta FTP, mamy dla Ciebie poradnik Konfiguracja połączenia FTP w programie FileZilla

Krok 2.

Przejdź do katalogu głównego instalacji WordPress i znajdź plik wp-config.php (najczęściej taki plik znajduje się w katalogu public_html domeny).

Otwórz plik wp-config.php w edytorze tekstu.

Krok 3.

Dodaj następujący kod do pliku wp-config.php, najlepiej przed linijką /* That’s all, stop editing! Happy blogging. */:

define(’DISABLE_WP_CRON’, true);

Zapisz zmiany i zamknij plik.

Krok 4.

Po wyłączeniu automatycznego cron’a w WordPress, musisz skonfigurować systemowy cron, aby zadania cron były nadal wykonywane.

Otwórz graficzny interfejs konfiguracji cron i wprowadź poniższe dane, które pozwolą na włączanie crona co 5 minut (możesz oczywiście ustawić własną wartość):

Harmonogram:

  • Minuta: */5
  • Godzina: *
  • Dzień miesiąca: *
  • Miesiąc: *
  • Dzień tygodnia: *

Komenda: /usr/local/bin/php80 /home/uzytkownik/domains/public_html/wp-cron.php > /dev/null 2>&1

Informujemy: /dev/null jest specjalnym plikiem w systemach Unix/Linux, który działa jak „czarna dziura”. Oznacza to, że wszystko, co zostanie do niego wysłane, zostanie natychmiast usunięte. Używa się go, aby zignorować wyjście komend, które nie jest potrzebne.

2>&1 to składnia używana w powłoce (shell), która przekierowuje wyjście błędów (standardowe wyjście błędów, stderr) na standardowe wyjście (stdout).

Podsumowanie

Zarządzanie zadaniami cron jest nieodzowne dla efektywnej administracji serwerem, automatyzacji procesów oraz zapewnienia regularnego wykonywania ważnych zadań. Dzięki cron można zaoszczędzić czas i zasoby, jednocześnie zwiększając niezawodność systemu, dlatego na pewno warto się nad tym zagadnieniem pochylić.

Autor:

Konrad Matus

Lojalny mnich w Zenbox.pl, zawsze pomocny i przeważnie uśmiechnięty. Zwolennik tekstu pisanego i samego pisania. Prywatnie mąż, ojciec i syn, dokładnie w tej kolejności. W wolnym czasie remontuje, produkuje muzykę elektroniczną i gra w grę... World of Warcraft.

Może ci się spodobać również

Laptop i ręce człowieka z nakładką tarczy.
Porady - 17 kwietnia 2025 12:28

Zero Trust Security w WordPress: Jak zabezpieczyć stronę przed nieautoryzowanym dostępem?

Bezpieczeństwo stron internetowych to temat, który nigdy nie traci na znaczeniu. W dobie rosnącej liczby ataków hakerskich, wycieków danych i zagrożeń typu brute force, tradycyjne podejście do ochrony stron WordPress może nie być wystarczające. Właśnie dlatego coraz więcej firm i administratorów stron internetowych wdraża model Zero Trust Security. Czym różni się Zero Trust od klasycznych […]

Więcej →

Ściana kodu html
Porady - 14 kwietnia 2025 12:53

Jak działa Git? Przewodnik dla początkujących

Git to jeden z najpopularniejszych systemów kontroli wersji na świecie. Jest używany przez programistów, administratorów systemów i zespoły IT do śledzenia zmian w kodzie i współpracy nad projektami. Dzięki niemu można tworzyć między innymi aplikacje internetowe i łatwo zarządzać w zespole historią plików, cofać zmiany i pracować nad różnymi funkcjami w niezależnych gałęziach. Wielu początkujących […]

Więcej →

Człowiek z mapą gotowy do migracji
Porady - 20 marca 2025 8:55

5 Najczęstszych błędów popełnianych podczas migracji strony internetowej na nowy serwer i jak ich uniknąć

Dobrze pamiętam gdy pierwszy raz zabierałem się za przeniesienie strony internetowej pomiędzy serwerami. Towarzyszyło mi uczucie zagubienia, kwestionowałem jeszcze wtedy bardzo swoje umiejętności, jednak powiedzenie „strach ma wielkie oczy” wyjątkowo dobrze wpisywało się w całą sytuację. Czy migracja strony www może być wyzwaniem? Oczywiście, jednak użyję tutaj mojego ulubionego zwrotu, „to zależy” od na przykład […]

Więcej →