Zadania cykliczne cron

Zadania cykliczne cron

 

Cron to mechanizm pozwalający na automatyczne uruchamianie programów cyklicznie lub o określonej porze.

Program ten umożliwia operacja takie jak synchronizacja stanów magazynowe z bazą danych sklepu internetowego lub pobranie aktualnego kursy walut.

 

Skrypty PHP mogą być wywoływane w dwóch trybach CLI oraz CGI. Skrypty CLI to inaczej programy wywoływane z linii poleceń. CGI to skrypty wywoływane w środowisku przeglądarki www. W większości przypadków zadziałają oba wywołania, ale czasami skrypt musi być wywołany w konkretnym trybie. W takiej sytuacji w sekcji nazwa programu należy podać jedną z poniższych ścieżek. To klient powinien wiedzieć w jakim trybie ma być wywoływany skrypt PHP. Jeżeli nie wie to powinien to ustalić u twórcy oprogramowania.

 

CLI

/usr/local/php5.2/bin/php
/usr/local/php5.3/bin/php
/usr/local/php5.4/bin/php
/usr/local/php5.5/bin/php
/usr/local/php5.6/bin/php
/usr/local/php7.0/bin/php

 

CGI

/usr/local/php5.2/bin/php-cgi
/usr/local/php5.3/bin/php-cgi
/usr/local/php5.4/bin/php-cgi
/usr/local/php5.5/bin/php-cgi
/usr/local/php5.6/bin/php-cgi
/usr/local/php7.0/bin/php-cgi

 

Skrypty PHP wywoływane przez crona korzystają z domyślnego php.ini na serwerze. Aby wykorzystany został własny plik php.ini (np. z włączonym IonCubem) musi zostać on podany w argumentach. Służy do tego parametr -c:

 

-c /katalog/katalog/php.ini

Aby utworzyć nowe zadanie cron należy zalogować się do Panelu klienta za pomocą konta administracyjnego.

 

1. W kolejnym kroku klikamy na zakładkę serwer www i wybieramy polecenie „Zadania cron”.

 

2. W otwartym formularzu wybieramy przycisk „Dodaj zadanie”.

 

 

 

3. Wprowadzamy niezbędne dane.

Określamy harmonogram, wg którego będzie uruchamiany skrypt.

Znak „*” oznacza wszystkie dostępne wartości dla zmiennej czasowej,

1,5,6 – oddzielone przecinkami – wybór pojedynczych wartości ze zbioru dostępnego (np. godzina 12).

Aby ustawić zadanie co określoną wartość należy podać */wartość.

 

Przykłady:

„Uruchamiaj codziennie co 15 minut” – w każdym kryterium z wyjątkiem minut wpisujemy znak * (godziny, dni, miesiące …). Dla minut ustalamy parametr */15.

 

 
„Uruchamiaj raz na dobę, 5 minut po północy” – na liście ‘minuta’ wpisujemy 5, na liście ‘godzina’ wpisujemy 0, dla pozostałych wartości wpisujemy znak *.

 


   
W polu „polecenie” wpisujemy pełną ścieżkę do pliku:

/usr/bin/php70 /sciezka/do/plik.php

 

 

Alternatywą dla ścieżki może być adres URL do skryptu.

Zaznaczamy checkbox „URL” i wybieramy protokół przesyłania dokumentów hipertekstowych (http:// lub https://)

Na liście „host” wybieramy właściwy URL, a w polu „polecenie” podajemy /usr/bin/curl.

 

Adres URL może zawierać parametry podobnie jak ma to miejsce w klasycznej przeglądarce internetowej, tak więc dozwolne są również adresy typu

www.przykladowastrona.com/cron/plik.php

 

W przypadku gdyby powyższy sposób okazał się nieskuteczny, istnieje alternatywna metoda opisana poniżej.

 

Jeśli chcemy wywołać skrypt po adresie www, nie zaznaczamy checkboxa „URL”

lecz wpisujemy odpowiednie ustawienie w zakładce „polecenie”

np.

/bin/sh -c '/usr/bin/curl --silent http://przykladowastrona.com/cron/plik.php &>/dev/null'

 

 

Domyślną lokalizacją zapisu wyniku zadania cron, jest następująca ścieżka:
/tmp/sh.out

Jeżeli wynik, crona ma być zapisywany do innej lokalizacji, można określić do niej ścieżkę
wpisując ją w polu: Log stdout

 

Błędy lub komunikaty zwrócone przez skrypt dotyczące danego zadania można znaleźć w folderze tmp na przestrzeni na której zostało dodane zadanie cron. Pliki mają nazwę taką jak wywoływany program i rozszerzenia err lub out.

Aby uruchamiać cronem skrypt napisany przez siebie (np skrypt powłoki sh, lub perl), należy pamiętać o nadaniu mu prawa do wykonywania (minimum 744).

 

Znane problemy

 

Kod uruchamiany przez stronę www działa, ale nie działa wywołanie przez crona – zwracane są komunikaty o nieistniejących plikach i/lub błędnych ścieżkach:

 

Przyczyną jest stosowanie względnych ścieżek do plików w uruchamianym kodzie bez jednoczesnej weryfikacji lokalizacji względem uruchamianego kodu. W przypadku wywołań stron, katalog z którego uruchamiany jest kod jest tym, w którym się on znajduje, a w przypadku zadania cron, jest nim zawsze główny katalog serwera. Rozwiązaniem jest rezygnacja z względnych ścieżek w kodzie lub inteligentna kontrola tych ścieżek na podstawie lokalizacji uruchamianego pliku.

Czy artykuł był pomocny?

Nie znalazłeś tego czego szukałeś? Napisz!

Administratorem Twoich danych osobowych jest H88 S.A., więcej informacji na temat przetwarzania danych osobowych przeczytasz w naszej Polityce prywatności.

Infolinia ogólna:
(61) 622 25 00

Infolinia dedykowana:
(61) 622 93 00

Tylko dla posiadaczy pakietów z dodatkiem "infolinia dedykowana"

Konto bankowe (mBank)
38 1140 1124 0000 5849 4900 1015

H88 S.A.
Franklina Roosevelta 22
60-829 Poznań

Spółka wpisana do Krajowego Rejestru Sądowego przez Sąd Rejonowy Poznań – Nowe Miasto i Wilda w Poznaniu, Wydział VIII Gospodarczy Krajowego Rejestru Sądowego pod nr KRS 0000612359, REGON 364261632, NIP 7822622168, kapitał zakładowy 215 228,00 zł w pełni wpłacony.