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ż

UX - 31 października 2024 16:32

Architektura informacji

Czym jest Architektura Informacji? Architektura informacji (AI) jest fundamentem, na którym buduje się strukturę produktów cyfrowych – aplikacji mobilnych i stron www. Jest to metoda organizowania treści w taki sposób, aby użytkownicy mogli łatwo nawigować, odnaleźć potrzebne informacje i osiągnąć zamierzony przez produkt cel . Architektura informacji jest więc zagadnieniem zajmującym się organizacją i prezentacją […]

Więcej →

Comments
WordPress - 25 października 2024 12:10

Jak wyłączyć komentarze w WordPressie?

Komentarze na WordPress mogą być dobrym sposobem na interakcję z użytkownikami. Niemniej w przypadku niektórych stron mogą one być zupełnie niepotrzebne. Jeśli chcesz całkowicie lub częściowo wyłączyć komentarze w WordPressie, ten poradnik jest właśnie dla Ciebie. Jeżeli jednak borykasz się ze spamerskimi komentarzami i chciałbyś je zablokować, polecamy artykuł pt. Jak zablokować spam w komentarzach […]

Więcej →

Bez kategorii - 24 października 2024 18:18

Persony

W poprzednich artykułach wiele razy wspominałam o tym, jak ważny w każdym projekcie jest użytkownik i jego potrzeby. Rozmawialiśmy też o badaniach i o tym, jak stworzyć produkt najlepiej dopasowany do oczekiwań użytkownika. Kim jednak jest nasz użytkownik? Jak go zidentyfikować? Persona jest właśnie taką reprezentacją naszego użytkownika i dziś przybliżę nieco ten termin. Kim […]

Więcej →