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.
Spis treści
Jak utworzyć nowe zadanie dla CRON?
1. Aby utworzyć nowe zadanie CRON zaloguj się do Panelu Klienta oraz przejdź do menu Zaawansowane, a następnie Zadania cykliczne (cron).
2. 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.
3. 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.