Cykliczne uruchamianie – CRON

Szybki hosting dla WordPressa

Wprowadzenie

Cykliczne uruchamianie skryptów “Cron” opiera się na zaprogramowanym wywołaniu odpowiednio nazwanych skryptów, znajdujących się w katalogu głównym Twojego serwera w home.pl. Czas wywołania skryptu może zostać ściśle zdefiniowany według przedziałów:
  • co pięć minut,
  • co godzinę (hourly),
  • codziennie (daily),
  • co tydzień (weekly),
  • co miesiąc (monthly)
  • o ściśle określonej godzinie (z dokładnością do 5 minut).

Z jakich rozszerzeń dla pliku mogę skorzystać przy funkcji CRON?

Dostępne rozszerzenia dla funkcji CRON to:

  • .php
  • .pl
  • .cgi
  • .py

Jak skorzystać z funkcji CRON na serwerze w home.pl?

Aby skorzystać z funkcji CRON, należy w katalogu głównym serwera umieścić skrypt z nazwą według zasady:

cron-[hourly|daily|monthly|weekly].[rozszerzenie]

W przypadku usług Hosting Start, Hosting Biznes, Hosting Profesjonalny lub Hosting Premium, WordPress Hosting SSD plik ze skryptem, który ma być cyklicznie uruchamiany przez mechanizm CRON, powinien zostać umieszczony w katalogu /public_html. Oznacza to, że przypadku wymienionych powyżej usług to katalog /public_html jest katalogiem głównym dla serwera.

Dokładne godziny uruchomień:

  • hourly – pełne godziny *:00,
  • daily – codziennie o 1:15,
  • weekly – w sobotę o 1:30,
  • monthly- pierwszego każdego miesiąca o 1:45.
Przykładowo plik “cron-daily.php” będzie uruchamiany codziennie o 1:15, przy zastosowaniu interpretera PHP.
WAŻNE! Nie można cyklicznie wywoływać skryptów z rozszerzeniem .php3

Jak tworzyć poprawne ścieżki do folderów (skrypt)?

Podczas uruchamiania CRONA wykonywane jest wydzielanie katalogu (potocznie mówiąc “chrootowanie”) z punktu widzenia użytkownika do katalogu: /home/ftpmg/public_html/

Dla funkcji CRON katalogiem głównym staje się katalog /public_html/. Podczas tworzenia ścieżek w skryptach uruchamianych przez CRON, należy korzystać z odwołań w formie: /skrypt.php. Wszystkie inne odwołania, np.: /public_html/skrypt.php, będą niepoprawne.

Inne przykłady zastosowania funkcji CRON:

cron-[godzina].[rozszerzenie]
Plik “cron-13.php” będzie wykonywany codziennie o godzinie 13:00 przez interpreter PHP.
Plik “cron-04.php” zostanie uruchomiony o godzinie 04:00 przez interpreter PHP.
cron-[hhmm].[rozszerzenie]
Plik „cron-1545.php” zostanie wykonany codziennie o 15:45.
Maksymalna dokładność to 5 minut – np. nie zadziała plik o nazwie “cron-1546.php”.
cron-[xx]min.[rozszerzenie] - gdzie xx oznacza min. Dozwolone wartości: 5, 10, 15, 20, 30
Plik “cron-5min.php” będzie wykonywany co 5 minut, począwszy od momentu opublikowania pliku w katalogu głównym serwera w home.pl.

Jak uruchamiać cyklicznie skrypty dla różnych wersji, np. PHP lub Python?

Jeśli chcesz cyklicznie uruchamiać skrypt przygotowany w języku PHP, np. dla różnych wersji, to dodaj w tym celu numer wersji do rozszerzenia pliku, np.:

Jeśli chcesz cyklicznie uruchomiać skrypt przygotowany w języku Python, np. w wersji 2.7 lub 3.6, to dodaj w tym celu numer wersji do rozszerzenia pliku, np.:

  • cron-1545.py   zostanie uruchomione codziennie o 15:45 dla Python w wersji 2.7
  • cron-1545.py3 – zostanie uruchomione codziennie o 15:45 dla Python w wersji 3.6

Jak zabezpieczyć się przed wywołaniem pliku CRON przez dowolnego użytkownika?

Środowisko, które powoduje cykliczne uruchamianie skryptów jest identyczne ze środowiskiem, w jakim uruchamiane są skrypty na serwerach wirtualnych. W praktyce oznacza to, że wywołanie takie niewiele różni się od zwykłego wywołania GET po protokole HTTP.
W celu zabezpieczenia się przed wywołaniem pliku cron przez dowolnego użytkownika, zablokuj do niego dostęp w pliku “.htaccess”. Możesz to wykonać wpisując w zawartość pliku “.htaccess” następujący kod:
:Location /cron-daily.php
Access deny all

Plik “.htaccess” z zawartością, która powoduje blokadę wywołania pliku CRON należy umieścić w katalogu głównym serwera. W linii zaczynającej się od frazy “:Location” zdefiniuj nazwę pliku CRON, który ma zostać zablokowany przed wywołaniem.

Dodatkowe instrukcje odnośnie funkcjonowania CRON w home.pl:

W sytuacji w której np. plik CRON znajduje się w podkatalogu, warunkiem jego uruchomienia będzie ręczne wywołanie go w przeglądarce lub umieszczenie w katalogu głównym serwera pliku CRON uruchamiającego.

Jeżeli dany skrypt PHP wykonuje się poprawnie, gdy wywoływany jest z poziomu przeglądarki, a nie dzieje się tak kiedy skrypt wywoływany jest w pliku cron, to sugerujemy przeniesienie treści skryptu do dowolnego innego pliku PHP i uruchamiania tego skryptu z pliku crona poleceniem wzorowanym na poniższym:

<?php system('wget --delete-after http://konto.home.pl/plik.php'); ?>

W przypadku, gdy wywoływany skrypt wymaga autoryzacji http:

<?php system('wget --delete-after --user=UŻYTKOWNIK --password=HASŁO http://konto.home.pl/plik.php'); ?>

W przypadku, gdy skrypt wywoływany jest z użyciem protokołu https:

<?php system('wget --delete-after --no-check-certificate https://konto.home.pl/plik.php'); ?>

Analogicznie z zastosowaniem polecenia curl:

<?php system('curl -f -s http://konto.home.pl/plik.php'); ?>

W przypadku, gdy wywoływany skrypt wymaga autoryzacji http:

<?php system('curl -f -s -u UŻYTKOWNIK:HASŁO http://konto.home.pl/plik.php'); ?>

W przypadku, gdy skrypt wywoływany jest z użyciem protokołu https:

<?php system('curl -f -s -k https://konto.home.pl/plik.php'); ?>

Hosting stworzony dla WordPressa

Masz stronę WWW na WordPressie? My też uwielbiamy ten system dla stron internetowych. Dlatego stworzyliśmy hosting specjalnie dla jego użytkowników.


Odbierz 25 zł do wydania na empik.com

Polecaj usługi home.pl i zdobywaj za każde polecenie kupon o wartości 25zł do wydania na empik.com

Zdobądź swój kupon na 25zł Sprawdź jak

  • Czy artykuł był pomocny ?
  • Tak   Nie