Jak skonfigurować zadania CRON w DirectAdmin?

Terminarz zadań w DirectAdmin (CRON) pozwala na skonfigurowanie cyklicznych zadań na serwerze, np. uruchamianie danego skryptu o określonej lub określonych porach dnia. Poniżej możesz zobaczyć jak takie zadanie skonfigurować.

Terminarz zadań

Aby dodać zadanie do CRON musisz zalogować się do swojego konta w DirectAdmin i wybrać dowolną domenę z listy dodanych do konta. Jeśli masz na koncie tylko jedną domenę, nie będziesz musiał wybierać.

Przejdź do "Terminarz zadań (cronjobs)" w sekcji "Opcje Zaawansowane".

jak_skonfigurowac_zadania_cron_w_directadmin_1.png

Tutaj masz możliwość dodania zadania. Należy uzupełnić wszystkie pola lub samo pole "komenda" a pozostałe pozostawić domyślne. Należy jednak przy tym uważać, w takiej konfiguracji dane zadanie będzie wykonywane co minutę (nie jest to zalecana konfiguracja dla większości zadań).

jak_skonfigurowac_zadania_cron_w_directadmin_2.png

Przy konfiguracji nowego zadania można dokładnie ustawić czas w jakim ma się ono uruchamiać. Do konfiguracji, jak widać powyżej, są: minuta, godzina, dzień miesiąca, miesiąc i dzień tygodnia. Poniżej przykłady podania dokładnego czasu w polu minuty:

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

Przy konfiguracji bardziej precyzyjnych czasów, jak ostatni podany przykład, nie może być spacji pomiędzy kolejnymi zapisami.

W ostatnim polu należy podać komendę jaka ma się uruchomić dla tego zadania. Poniżej przykłady:

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

    Przy takim zapisie polecenie zostanie uruchomione przy wykorzystaniu domyślnej wersji PHP serwera, w momencie pisania tego artykułu jest to PHP 5.6. Możliwe jest uruchamianie zadania używając konkretnej wersji PHP, więcej informacji na ten temat znajdziesz tutaj.

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

    Używając tego zapisu, polecenie zostanie wykonane z wykorzystaniem aktywnej wersji wersji PHP dla danej domeny. Możesz w DirectAdmin zmienić aktywną wersję PHP dla domeny, zapoznaj się z tym aktykułem.

  • Powyższe polecenia będą wysyłały informację mailową na temat zadania, na skonfigurowany adres email (o tym poniżej). Aby tego uniknąć należy dodać do polecenia zapis >/dev/null 2>&1:
    wget -q -O /dev/null "http://domena.pl/skrypt.php" >/dev/null 2>&1

Po dodaniu zadania zostanie ono wyświetlone poniżej, w ramce. Można je zmieniać już po dodaniu lub usuwać, należy je zaznaczyć po prawej stronie i użyć odpowiedniego przycisku poniżej.

jak_skonfigurowac_zadania_cron_w_directadmin_3.png

Jak wspomniałem wcześniej zadania bez dodanego zapisu ">/dev/null 2>&1" wysyłają powiadomienia na adres email ustawiony w terminarzu zadań. Możesz w polu podać: adres email lub nazwę użytkownika DirectAdmin (login konta). W przypadku podania loginu, wiadomości będą wysyłane na główny adres konta, jego dane logowania są takie same jak do samego konta DirectAdmin. Można pole zostawić puste i zapisać, wtedy niezależnie od zapisu komendy w zadaniu, powiadomienia nie będą wysyłane.

jak_skonfigurowac_zadania_cron_w_directadmin_4.png

Podsumowanie

Terminarz zadań daje możliwość dość swobodnego określania czasu w jakim dane zadanie ma się wykonać. Warto przed uruchomieniem takiego zadania sprawdzić skrypt w poszukiwaniu błędów. Błędnie działający skrypt może nadmiernie obciążyć zasoby konta, które również możesz sprawdzić w DirectAdmin, po zapoznaniu z innym artykułem.