Uptime: 99.97%
Strony WWW:
Nowe strony WWW dzisiaj:
100 000 Użytkowników w SEOHOST. To dzięki Wam! Czytaj więcej W SEOHOST Użytkownik jest zawsze na pierwszym miejscu! Czytaj więcej Z SEOHOST korzysta już ponad 90 000 Użytkowników! Czytaj więcej Pełna transparencja: uptime naszej infrastruktury Czytaj więcej Wywiad z naszym CEO na bezprawnik.pl Czytaj więcej SEOHOST.pl zdobywa 2 miejsce w rankingu NASK. Czytaj więcej Uwaga: kolejna próba phishingu! Czytaj więcej Dlaczego warto migrować do SEOHOST? Czytaj więcej
Redakcja SEOHOST.pl
Redakcja SEOHOST.pl
30 Czerwca 2020
5 minut

Jak skonfigurować zadania CRON w DirectAdmin?

Terminarz zadań CRON w DirectAdmin pozwala automatycznie uruchamiać skrypty na serwerze o określonej godzinie, z wybraną częstotliwością – np. do generowania kopii zapasowych, odświeżania cache czy aktualizacji danych w sklepie. W tym poradniku zobaczysz, jak dodać nowe zadanie CRON, jak poprawnie ustawić harmonogram oraz jak zapisać komendę, aby nie przeciążyć serwera i jednocześnie mieć pewność, że Twoje skrypty wykonują się dokładnie wtedy, kiedy trzeba.

Wideo instrukcja

Kliknij w link, aby zapoznać się z materiałem filmowym, jak skonfigurować zadania CRON w panelu DirectAdmin.

Terminarz zadań

Terminarz zadań w DirectAdmin (CRON) pozwala na skonfigurowanie cyklicznych zadań na serwerze, np. uruchamianie określonego skryptu o konkretnej godzinie, kilka razy dziennie lub tylko w wybrane dni tygodnia. Dzięki temu wiele procesów możesz całkowicie zautomatyzować i odciążyć ręczną pracę.

Aby dodać zadanie do CRON, zaloguj się do swojego konta w DirectAdmin i przejdź do: Funkcje zaawansowane → Zadania CRON.

Widok panelu DirectAdmin – menu Funkcje zaawansowane i Zadania CRON

W tym miejscu masz możliwość dodania nowego zadania. Kliknij przycisk „Utwórz zadanie cron”.

Lista zadań CRON w DirectAdmin z przyciskiem Utwórz zadanie cron

Jeśli planujesz więcej zadań CRON (np. dla sklepu internetowego, integracji API czy cyklicznych backupów), postaw je na niezawodnym i szybkim hostingu z obsługą zadań CRON i panelem DirectAdmin . Stabilny hosting z odpowiednimi zasobami znacznie zmniejsza ryzyko błędów podczas wykonywania skryptów.

Ustawianie harmonogramu – minuty, godziny i dni

Formularz tworzenia zadania CRON składa się z pól odpowiadających za czas uruchamiania oraz pola „komenda”. Możesz uzupełnić wszystkie pola lub podać tylko komendę, pozostawiając wartości domyślne – wtedy zadanie wykona się co minutę, co rzadko jest dobrą praktyką i zwykle nie jest zalecane dla większości zadań.

Do konfiguracji dostępne są pola: minuta, godzina, dzień miesiąca, miesiąc i dzień tygodnia. W każdym z nich możesz używać zarówno liczb, jak i znaku *. Poniżej przykłady dla pola minuty:

  • Dopuszczalne wartości to liczby oraz znak *.
  • Możesz podać dokładne minuty, oddzielone przecinkami, np. 1,2,3 (minuty 1, 2 i 3).
  • Możesz podać przedział czasu, stosując myślnik, np. 5-7 (od 5. do 7. minuty).
  • Możesz użyć gwiazdki ze slashem, np. */2 (co 2 minuty).
  • Możesz łączyć wszystkie sposoby, aby stworzyć precyzyjny harmonogram, np. 1,5,11-15,30-59/2 (1., 5., od 11. do 15. minuty oraz pomiędzy 30. a 59. minutą co dwie minuty).

Przy konfiguracji bardziej rozbudowanych zapisów (jak w ostatnim przykładzie) pamiętaj, aby pomiędzy kolejnymi fragmentami nie było spacji – w przeciwnym razie zapis zostanie odrzucony lub zinterpretowany niepoprawnie.

Przykładowe komendy CRON dla PHP i wget

W ostatnim polu formularza należy podać komendę, jaka ma się uruchomić dla danego zadania. Poniżej kilka praktycznych przykładów:

  • Polecenie zawierające ścieżkę serwerową do skryptu PHP:
    /usr/local/bin/php /home/srv1171/domains/domena.pl/public_html/cron.php

    Przy takim zapisie polecenie zostanie uruchomione z wykorzystaniem domyślnej wersji PHP serwera (w momencie tworzenia artykułu była to PHP 5.6). Możliwe jest również uruchamianie zadania, używając konkretnej wersji PHP – więcej informacji na ten temat znajdziesz w osobnym poradniku o zadaniach CRON dla różnych wersji PHP .

  • Polecenie zawierające adres URL do skryptu:
    wget -q -O /dev/null http://domena.pl/skrypt.php

    Wykorzystując taki zapis, polecenie zostanie wykonane z użyciem aktywnej wersji PHP przypisanej do danej domeny. W DirectAdmin możesz w każdej chwili zmienić wersję PHP dla konkretnej domeny – instrukcję znajdziesz w poradniku o zmianie wersji PHP na serwerze WWW .

  • Wyłączenie maili z wynikami zadania:

    Powyższe polecenia domyślnie wysyłają informacje mailowe o wyniku zadania na skonfigurowany adres e-mail (więcej o tym poniżej). Aby uniknąć zalewania skrzynki logami, dodaj na końcu komendy zapis:

    wget -q -O /dev/null http://domena.pl/skrypt.php >/dev/null 2>&1
  • Przykład z użyciem curl:
    curl --silent http://www.domena.pl/cron.php

    Tego typu wywołanie sprawdzi się wszędzie tam, gdzie wygodniej korzystać z curl niż z wget, np. w środowiskach, gdzie tylko jedno z tych narzędzi jest dostępne.

Po dodaniu zadania zostanie ono wyświetlone poniżej, w ramce z listą zaplanowanych CRON-ów. Możesz je edytować już po zapisaniu lub usunąć – wystarczy zaznaczyć je po prawej stronie i użyć odpowiedniego przycisku pod listą.

Lista skonfigurowanych zadań CRON w panelu DirectAdmin

Powiadomienia e-mail z zadań CRON

Zadania CRON bez dopisku >/dev/null 2>&1 wysyłają powiadomienia na adres e-mail ustawiony w terminarzu zadań. W odpowiednim polu możesz podać:

  • adres e-mail – logi z wykonania zadań będą trafiać na tę skrzynkę,
  • login użytkownika DirectAdmin – wtedy wiadomości będą wysyłane na główny adres konta, działający tak samo jak dane logowania do panelu DirectAdmin.

Możesz także pozostawić to pole puste i zapisać – wówczas, niezależnie od tego, jak wygląda komenda w zadaniu, powiadomienia nie będą wysyłane.

Konfiguracja adresu e-mail do powiadomień z zadań CRON w DirectAdmin

Zadania CRON: podsumowanie

Terminarz zadań CRON w DirectAdmin daje bardzo dużą swobodę w określaniu czasu, w jakim dane zadanie ma się wykonać. Przed uruchomieniem cyklicznego zadania warto jednak dokładnie sprawdzić skrypt – błędnie działający kod może mocno obciążyć serwer i limity Twojego konta. Obciążenie zasobów możesz w każdej chwili zweryfikować w DirectAdmin, po zapoznaniu się z innym poradnikiem o sprawdzaniu obciążenia konta .

Ważne: dodanie zadania CRON nie oznacza, że wszystko „zadziała samo z siebie”. Przed włączeniem cyklicznego wywoływania skryptu upewnij się, że: ręczne uruchomienie skryptu nie generuje błędów, czasy wykonywania mieszczą się w limitach PHP/serwera, a harmonogram nie jest zbyt gęsty (np. co minutę dla ciężkich operacji). W razie problemów z wydajnością lub przekroczeniem limitów warto rozważyć optymalizację kodu albo przeniesienie zadań na mocniejszy plan – np. serwer VPS – tak, aby automatyzacja nie spowalniała działania całej strony.

Czy udało Ci się rozwiązać problem?
Nie znalazłeś odpowiedzi na swoje pytanie?