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!

Infolinia ogólna:
(58) 739-63-69

FAX:
(58) 739 63 68

Konto bankowe (mBank)
54 1140 1124 0000 5849 4900 1018

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.