11 - Antivirus (Outline) Created with Sketch. 7 - Combination Lock Closed (Outline) Created with Sketch. 7 - Combination Lock Closed (Outline) Created with Sketch. 7 - Combination Lock Closed (Outline) Created with Sketch. 4 - Safe Combination (Outline) Created with Sketch. 48 - Protected System (Outline) Created with Sketch. 20 - Key (Outline) Created with Sketch. 20 - Key (Outline) Created with Sketch. 48 - Protected System (Outline) Created with Sketch.
Flag of Germany

Jak dodać CRON'a?

Przypływ zielonej energii.
~hosting bez zmartwień

399.00 zł

od

/ za pierwszy rok

Jak dodać CRON'a?

Za pomocą narzędzia CRON możesz w łatwy sposób zautomatyzować proces uruchamiania się skryptów potrzebnych do prawidłowego funkcjonowania Twojej strony w wybranych cyklicznie powtarzających się okresach czasu.

W poniższym artykule pokażemy jak krok po kroku utworzyć zadanie CRON oraz w jaki sposób sprawdzić jego działanie.


Jak utworzyć nowe zadanie dla CRON?

Aby utworzyć nowe zadanie CRON zaloguj się do Panelu Klienta oraz przejdź do menu Zaawansowane, a następnie Zadania cykliczne (cron).


W oknie przeglądarki zostanie wyświetlony formularz za pomocą którego możesz określić harmonogram czasowy wykonywania się zadania oraz polecenie, które ma zostać uruchomione.


Po prawidłowym uzupełnieniu harmonogramu - określeniu czasu w jakim ma zostać uruchomione zadanie, oraz po wprowadzeniu komendy należy zapisać zmiany przyciskiem Dodaj.


Jak skonfigurować harmonogram czasu wykonywania się zadań?

Domyślnie formularz zaproponuje wykonywanie się utworzonego zadania co 1 minutę, o czym świadczą znajdujące się w polach odpowiedzialnych za czas gwiazdki “*”. 

Zalecamy jednak zmianę tej konfiguracji, tak aby zadania były wykonywane w różnych odstępach czasowych, a w przypadku wielu zadań aby czasy te nie nachodziły na siebie. Taka konfiguracja pozwoli na uniknięcie problemów wynikających z przeciążenia serwera.

Zatem jeżeli chcesz, aby Twoje zadanie CRON było wykonywane co 15 minut należy zastosować poniższą zmianę dla pola minut:

  • Minuta: */15


Alternatywnie dla powyższego zapisu możesz zastosować ręczne określenie minut, w których zadanie będzie wykonywane, jest to przydatne w przypadku, kiedy dodajesz wiele zadań CRON które mają być wykonywane w podobnym okresie czasu:

  • Pierwsze zadanie: Minuta: 0, 15, 30, 45
  • Drugie zadanie: Minuta: 5, 20, 35, 50


Podobny schemat można zastosować w przypadku, kiedy chcesz aby zadania były wykonywane na przykład co godzinę. Dla pojedynczego zadania harmonogram będzie wyglądał następująco:

  • Minuta: 0 , Godzina: */1


W przypadku, kiedy chcesz, aby kilka zadań CRON było wykonywanych co godzinę, możesz zastosować następującą konfigurację:

  • Pierwsze zadanie: Minuta: 1 , Godzina: */1
  • Drugie zadanie: Minuta: 15 , Godzina: */1


W powyższej konfiguracji pierwsze zadanie będzie wykonywane w pierwszej minucie każdej godziny, natomiast drugie w 15 minucie każdej godziny.

Korzystając z powyższych zasad możesz ustawić również harmonogram uruchamiania się zadań CRON dla poszczególnych dni, miesięcy czy konkretnych dni w tygodniu.

Uwaga: Jeżeli masz wątpliwości odnośnie prawidłowej konfiguracji harmonogramu, skontaktuj się z naszym Biurem Obsługi Klienta.


Jak wygląda komenda dla CRON?

Tworzone zadania dla CRON mogą być uruchamianie w różny sposób. W poniższym artykule prezentujemy dwa najbardziej popularne rozwiązania.

Komenda dla zadań wykonywanych za pomocą narzędzia wget:

Pierwszym sposobem jest skorzystanie z polecenia wget. Poprawnie utworzona komenda dla CRON, korzystająca z narzędzia wget może wyglądać następująco:

wget -q -O /dev/null "http://domena.pl/plik.php" >/dev/null 2>&1


Uwaga: W miejscu adresu należy wskazać lokalizację do pliku lub adresu URL, który ma być wykonywany w ramach utworzonej komendy. 

Komenda dla zadań wykonywanych za pomocą trybu CLI dla PHP:

Drugim sposobem uruchamiania zadań CRON jest skorzystania z trybu CLI dla interpretera PHP. Poprawnie utworzona komenda, korzystająca CLI dla interpretera PHP 7.2 może wyglądać następująco:

/usr/local/bin/php72 /home/uzytkownik/domains/przykladowa-domena.pl/public_html/skrypt.php >/dev/null 2>&1


Ze względu na możliwość używania na serwerach hostingowych w Zenbox różnych wersji PHP, ścieżki służące do ich wywoływania są różne:

  • PHP 5.6 –> /usr/local/bin/php56
  • PHP 7.0 –> /usr/local/bin/php70 
  • PHP 7.1 –> /usr/local/bin/php71 
  • PHP 7.2 –> /usr/local/bin/php72 
  • PHP 7.3 –> /usr/local/bin/php73 
  • PHP 7.4 –> /usr/local/bin/php74

Szczegółowy opis tworzenia zadań z wykorzystaniem CLI dostępny jest również w naszej bazie wiedzy w artykule Jak dodać CRON’a z CLI


Jak zapisać wynik zadania CRON do pliku?

Jedną z funkcji pozwalających na przykład na sprawdzenie czy utworzone zadania CRON wykonywane są zgodnie z harmonogramem oraz nie zwracają błędów, jest utworzenie logowania ich do pliku tekstowego.

W tym celu należy w dodawanej komendzie określić nazwę pliku w którym zapisywane będą wyniki zadań oraz ścieżkę do pliku. Przykładowa komenda, która pozwala na zapis danych do pliku wygląda następująco:

wget -O /dev/null "http://domena.pl/plik.php" >> /home/uzytkownik/zadanie_cron.log 2>&1


Uwaga: W powyższej komendzie dla wget został usunięty parametr -q, który odpowiada za wykonywanie się zadań bez zwracania o nich informacji. Pozostanie parametru -q spowoduje brak zapisywania się danych w utworzonym pliku tekstowym.


Powiązane artykuły:

Komentarzy (6)

Pawel Glowacki 27.12.2016 16:39:56

czy jeśli muszę do skryptu PHP przekazać 2 parametry to mogę je dodać po prostu po nazwie pliku? tak jak przykładzie poniżej?

wget -q -O /dev/null "http://domena.pl/plik.php create 88" >/dev/null 2>&1

cronox 30.10.2017 16:01:25

@pawel
wget uruchamia skrypt PHP tak samo jak byś wpisał adres w przeglądarce,
żeby przekazać dane do z pomocą wget to użyj $_GET czyli podajesz parametry w adresie
np. http://domena.pl/plik.php?action =create&id=88

Jeżeli chcesz przekazać parametry w taki sposób jaki podałeś możesz odpalić skrypt za pomocą php-cli wtedy wpis występowałby następująco:
php /sciezka/do/skryptu.php create 88 > /dev/null 2>&1

w skrypcie możesz wtedy wyjąć parametry z tablicy $argv

Grzegorz Pol 14.10.2020 1:11:26

A co wpisać - i w które okienko - aby wybrany skrypt uruchamiał się codziennie 5 minut po północy?

Łukasz 20.10.2020 23:13:18

Grzegorz Pol - w pierwsze okno 5 w drugie okno 0 a w resztę *

czyli kolejno
5
0
*
*
*
:)

Kacper 19.05.2021 14:29:22

Posiadam link, który ma za zadanie automatycznie wywołać import przez moduł. Link jest w formie http://domena.pl/modules/pshowimporter/direct_import.php?file1=1619465439-marka_1&securekey=13455332a56151848298322275bdf7171. Proszę o pomoc co wpisać w komendzie by było to wykonywane. Po wejściu w link jest wykonywany import a strona się jakby ładowała. Po zakończeniu importu jest zwrotny komentarz FINISHED.

Kamil Kołosowski 20.05.2021 19:01:31

Dzień dobry Panie Kacprze,

Do wykonania wskazanego zadania może Pan wykorzystać opisywaną w artykule komendę wget, która w ustalonym czasie będzie uruchamiała wybrany link.

W przypadku problemów z konfiguracją zadania CRON prosimy o kontakt z naszym Biurem Obsługi Klienta, a pomożemy Panu w wykonaniu odpowiednej konfiguracji.

Dodaj komentarz

Pytania? Odpisujemy na maile do 8 minut!

Dostarczamy najlepszą obsługę klienta w konkurencyjnej cenie i odpowiadamy na zgłoszenia błyskawicznie.

Napisz do nas