Pomoc a24.domeny.pl

Centrum pomocy

szukaj

Wybierz temat lub wpisz, czego szukasz...

Strona główna » Serwer WWW » Zadania cykliczne cron

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.

 

Operator oraz Administrator Danych: H88 S.A. ul. Franklina Roosevelta 22, 60-829 Poznań, NIP: 782-262-21-68, KRS: 0000612359. Kapitał zakładowy spółki: 210.000 PLN w całości wniesiony
Jesteśmy częścią R22 S.A.