Jak utworzyć zadanie cron z panelu LWS?

Procédure

Co to jest zadanie cron?

Celem zadania cron jest automatyczne uruchamianie skryptu, polecenia lub programu o określonych porach.

Za pomocą"LWS cron job" można zaplanować uruchamianie skryptu w witrynie o różnych porach. Na przykład raz w tygodniu, raz dziennie, 8 dnia każdego miesiąca itp.

Cron jest bardzo przydatnym narzędziem dla administratorów systemu do automatyzacji różnych zadań, takich jak tworzenie kopii zapasowych danych, aktualizacja oprogramowania,wysyłanie wiadomości e-mail itp.

Do tych zadań stosowany jest limit czasu wynoszący 240 sekund, co oznacza, że jeśli uruchomienie skryptu zajmie więcej niż 4 minuty, zostanie on automatycznie zamknięty po 4 minutach.

Jak utworzyć zadanie cron?

Dostęp do narzędzia Cron Task

Najpierw musisz zalogować się na swoje konto LWS i uzyskać dostęp do hostingu współdzielonego, dla którego chcesz utworzyć zadanie cron.

Po wejściu w zarządzanie usługą, poszukaj bloku"Baza danych i PHP" i kliknij"Zadania Cron".

Jak utworzyć zadanie cron z panelu LWS?

Konfigurowanie częstotliwości zadania cron

Pierwszą rzeczą, którą należy skonfigurować dla zadania cron, jest jego okresowość.

Na tym poziomie LWS oferuje wstępne ustawienia w swoim narzędziu, dzięki czemu można to skonfigurować jednym kliknięciem.

Aby to zrobić, wystarczy skorzystać z pierwszej listy w górnej części formularza i wybrać jeden z proponowanych parametrów. Spowoduje to automatyczne wypełnienie pól zgodnie z okresowością wskazaną na wybranej liście.

Jak utworzyć zadanie cron z panelu LWS?

Jeśli okresowość, którą chcesz ustawić, nie jest proponowana na tej pierwszej liście, nie martw się, możemy skonfigurować każdy element.

Dla każdego elementu (minuty, godziny, dni itp.) można wprowadzić wartości ręcznie lub użyć pola listy po prawej stronie każdego pola.

Jeśli na przykład chcę, aby moje zadanie rozpoczynało się codziennie o godzinie 12:27, wystarczy wybrać liczbę 27 na liście dołączonej do pola minut i wybrać 12:00 pm (południe) na liście dołączonej do pola godziny.

Wskazówki / porady

  • Z wyjątkiem bardzo szczególnych przypadków, nie zalecamy konfigurowania zadania cron do uruchamiania co minutę, aby nie nasycić serwera, a tym samym zmniejszyć wydajność usługi.
  • Preferuj zadania uruchamiane w nocy i o określonych godzinach (np. 3.47 ), aby uniknąć uruchamiania zadań w tym samym czasie, co ewentualne zadania automatyczne, co może mieć miejsce w przypadku niektórych systemów CMS lub narzędzi używanych w witrynie.

Konfiguracja pola poleceń

Istnieją trzy sposoby wywołania skryptu za pomocą narzędzia Cron Task:

  • Wywołanie PHP
  • Wywołanie wget
  • wywołanie cURL

Różnica między tymi trzema opcjami polega głównie na sposobie wykonywania skryptu.

Wywołanie Wget lub Curl wykorzystuje protokół HTTP, co oznacza, że będzie podlegać konfiguracjom Apache i ograniczeniom, takim jak limit czasu, który może być stosunkowo krótki.

Z drugiej strony, wywołaniePHP będzie wolne od ograniczeń, które omówiliśmy z pozostałymi dwiema metodami. Pomyśl o wywołaniu PHP jako o przejściu przez połączenie SSH.

Możesz więc zastanawiać się, którą metodę wybrać do skonfigurowania zadania Cron. Nasza odpowiedź jest taka, że nie ma rzeczywistych różnic dla podstawowych skryptów, które działają szybko. Jeśli jednak zadanie CRON jest dość duże, z wieloma wykonywanymi akcjami, a zatem nieco dłuższym czasem wykonania, najbardziej odpowiednią metodą będzie wywołaniePHP. W przeciwieństwie do Curl lub Wget, limit czasu będzie dłuższy (4 min).

Przyjrzymy się, jak skonfigurować zadanie cron dla każdego z wyżej wymienionych wywołań. Jako przykład weźmiemy prostą witrynę wywołującą skrypt główny.

Wywołanie cURL

Wykonując wywołanie curl przy użyciu protokołu HTTP, po prostu wywołujemy adres URL do naszego pliku w następujący sposób

curl -s -H "Cache-Control: no-cache" "https://www.mon-domaine.fr/cron.php" > /dev/null

Możemy również potrzebować wysłać parametry do naszego skryptu. Aby to zrobić, wystarczy dodać je w następujący sposób:

curl -d "param1=value1&param2=value2" -s -H "Cache-Control: no-cache" "https://www.mon-domaine.fr/cron.php" > /dev/null

Pozwoli nam to pobrać te wartości parametrów w kodzie naszego skryptu POST.

Opcja Rola
-s Tryb cichy (bez paska postępu).
-H "Cache-Control: no-cache" Wymusza brak pamięci podręcznej po stronie serwera.
> /dev/null Przekierowuje dane wyjściowe, aby nic nie zapisywać.

Wywołanie Wget

Podczas wywołania Wget, które również używa protokołu HTTP, podobnie jak w przypadku wywołania cURL, wywołamy również adres URL naszego skryptu. W ten sposób otrzymamy :

wget --no-cache --output-document=/dev/null --header="Cache-Control: no-cache" "https://www.mon-domaine.fr/cron.php"

Jeśli musimy przekazać parametry do skryptu, z Wget nie będziemy mieli wyboru, jak tylko przekazać parametry w GET. Oto jak napisać polecenie :

wget --no-cache --output-document=/dev/null --header="Cache-Control: no-cache" "https://www.mon-domaine.fr/cron.php?param1=value1&param2=value2"

W skrypcie możemy pobrać te dwa parametry w GET.

Opcja Rola
--no-cache Pozwala uniknąć korzystania z pośrednich pamięci podręcznych (przydatne w przypadku niektórych serwerów proxy).
--output-document=/dev/null Nie przechowuje niczego lokalnie.
--header="Cache-Control: no-cache" Wysyła nagłówek HTTP, aby uniknąć buforowania po stronie serwera.

Wywołanie PHP

W przypadku prostej witryny, wyobraźmy sobie, że plik zawierający mój skrypt nazywa się cron.php

Wszystko, co musisz zrobić, to wpisać następujące polecenie w narzędziu Cron Task:

php /htdocs/cron.php

Tutaj, wersja PHP używana do uruchomienia skryptu będzie domyślnie 8.0.

Jeśli chcesz użyć konkretnej wersji PHP, po prostu zmodyfikuj nieco wywołanie. Na przykład, jeśli chcesz użyć wersji 7.2 do uruchomienia skryptu, jest to polecenie o nazwie :

php72 /htdocs/cron.php

Możemy również potrzebować przekazać argument, który zostanie następnie użyty w naszym skrypcie.

Na przykład, wyobraźmy sobie, że celem naszego skryptu jest wysłanie wiadomości e-mail na podstawie zdefiniowanego przez nas kryterium, takiego jak data urodzin. Możemy zatem chcieć przekazać to kryterium w wywołaniu. Oto jak to zrobić za pomocą wiersza poleceń :

php72 /htdocs/cron.php type=anniversary

Przypadki specjalne

Istnieją również specjalne przypadki w zależności od tego, czego używasz w swojej witrynie.

Na przykład w przypadku witryny utworzonej za pomocą frameworka Cakephp konfiguracja zadania CRON będzie nieco inna, ponieważ zostanie wykonana za pomocą polecenia SHELL wywoływanego przez system frameworka.

Wyobraźmy sobie, że mamy witrynę e-commerce utworzoną za pomocą frameworka Cakephp i chcemy skonfigurować skrypt, który wyśle wiadomość e-mail do najlepszego klienta, aby zaoferować mu kod promocyjny.

Utworzymy polecenie Cake, które nazwiemy SendCP i które będzie zawierać skrypt zarządzający tym, co chcemy zrobić. Oto jak skonfigurujemy zadanie Cron:

php72 /htdocs/Console/cake.php SendCP

Podanie przykładu każdego przypadku zajęłoby dużo czasu, ale dzięki temu, co zostało tutaj podane, masz już dobre podstawy do korzystania z narzędzia zadań Cron.

Korzystając z różnych przykładów, wiemy teraz, jak napisać nasze polecenie, aby :

  • po prostu uruchamiać nasz skrypt w wybranych odstępach czasu
  • uruchomić nasz skrypt, dodając parametry i w wybranych odstępach czasu.

Tworzenie pliku dziennika

Przyjrzymy się teraz, jak utworzyć plik dziennika, abyśmy mogli zobaczyć, co wydarzyło się podczas skryptu wywoływanego przez Cron.

Aby to zrobić, użyjemy poniższego przykładu dla naszego skryptu CRON.

Przykład funkcji echo PHP dla pliku dziennika

<?php /* Więc nie musisz się martwić o buforowanie */ header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0"); header("Cache-Control: post-check=0, pre-check=0", false); header("Pragma: no-cache"); /* Write the current date to the file, for example: 2023/01/19 12:24:01 */ /* PHP_EOL allows you to skip a line in the file */ echo date('Y/m/d h:i:s').PHP_EOL; /* Zapisz poniższe zdanie w pliku dziennika */ echo 'Nagrywanie mojego Crona'.PHP_EOL.PHP_EOL; ?

Renderowanie pliku dziennika po uruchomieniu skryptu za pośrednictwem zadania Cron

2023/01/19 02:57:01 Nagrywanie mojego Crona 2023/01/19 03:57:01 Nagrywanie mojego Crona 2023/01/19 04:57:01 Nagrywanie mojego Crona 2023/01/19 05:57:01 Nagrywanie mojego Crona 2023/01/19 06:57:01 Nagrywanie mojego Crona 2023/01/19 07:57:01 Nagrywanie mojego Crona 2023/01/19 08:57:01 Nagrywanie mojego Crona

To, co umieścisz w pliku dziennika, będzie zatem zależeć od ciebie i tego, co chcesz śledzić w swoim skrypcie. Na przykład może to być lista działań z wynikiem dla każdego z nich.

Przykład wywołania cURL ze zwrotem w pliku dziennika

W przypadku wywołania cURL, oto polecenie, które należy wpisać w polu "Command":

curl -s -H "Cache-Control: no-cache" "https://www.mon-domaine.fr/cron.php" > /htdocs/logs/cron_curl.log 2>&1

W tym przykładzie zapisy zwrotne (echo PHP) zostaną wykonane do pliku cron_curl.log w folderze logs. Jeśli plik lub folder nie istnieje, zostanie utworzony automatycznie.

Opcja Rola
-s Tryb cichy (bez paska postępu).
-H "Cache-Control: no-cache" Wymusza brak pamięci podręcznej po stronie serwera.
> /htdocs/logs/cron_curl.log przekierowuje standardowe wyjście (stdout) do cron_curl.log.
2>&1 przekierowuje również błędy (stderr) do tego samego pliku.

Przykład wywołania wget z powrotem do pliku dziennika

Oto polecenie, którego należy użyć do wywołania Wget:

wget -O - -q --no-cache --header="Cache-Control: no-cache" "https://www.mon-domaine.fr/cron.php" > /htdocs/logs/cron_wget.log 2>&1

W tym przykładzie informacja zwrotna zapisu (echo PHP) zostanie wysłana do pliku cron_wget.log w folderze logs. Jeśli plik lub folder nie istnieje, zostanie utworzony automatycznie.

Opcja Rola
--no-cache Unika korzystania z pośrednich pamięci podręcznych (przydatne w przypadku niektórych serwerów proxy).
--header="Cache-Control: no-cache" Wysyła nagłówek HTTP, aby uniknąć buforowania po stronie serwera.
--post-data="..." dodaje niestandardowy nagłówek HTTP.
> /htdocs/logs/cron_wget.log przekierowuje standardowe wyjście (stdout) do cron_wget.log.
2>&1 przekierowuje również błędy (stderr) do tego samego pliku.

Przykład wywołania PHP z powrotem do pliku dziennika

W przypadku wywołania PHO, oto polecenie, którego należy użyć:

php72 /htdocs/cron.php >> /htdocs/logs/cron_php.log

W tym przykładzie informacja zwrotna o zapisie (echo PHP) zostanie wysłana do pliku cron_php.log w folderze logs. Jeśli plik lub folder nie istnieje, zostanie utworzony automatycznie.

Jak zarządzać zadaniami cron?

Wyświetlanie utworzonych zadań cron

Po utworzeniu zadań cron można je znaleźć bezpośrednio na liście wyświetlanej poniżej formularza dodawania.

Jak utworzyć zadanie cron z panelu LWS?

Znajduje się tam lista z zarejestrowanymi poleceniami, okresowością i opcją usunięcia zadania cron lub wstrzymania go.

Jak utworzyć zadanie cron z panelu LWS?

Jak zmodyfikować zadanie cron?

Jeśli posiadasz pakiet LWS Starter lub wyższy, możesz zmodyfikować zadanie cron dla swojego pakietu za pomocą terminala internetowego dostępnego z poziomu administracji pakietem.

Aby to zrobić, połącz się ze swoim hostingiem i uzyskaj dostęp do hostingu współdzielonego, dla którego chcesz zmodyfikować zadanie cron.

Kliknij"Terminal" w sekcji "Oprogramowanie".

Jak utworzyć zadanie cron z panelu LWS?

Uzyskaj dostęp do pliku cron za pomocą następującego polecenia:

crontab -e

Jak utworzyć zadanie cron z panelu LWS?

Po wejściu do pliku cron, przejrzyj plik w poszukiwaniu zadania, które chcesz zmodyfikować. Każda linia w pliku reprezentuje oddzielne zadanie. Następnie zmodyfikuj zadanie cron, upewniając się, że składnia pozostaje poprawna. Następnie zapisz je za pomocą skrótu klawiaturowego [CTRL]+X, a następnie"Y". Następnie naciśnij [Enter].

Następnie możesz sprawdzić, czy zadanie cron zostało poprawnie zmodyfikowane, używając następującego polecenia:

crontab -l

Jak utworzyć zadanie cron z panelu LWS?

Korzystanie z zadań Cron z Cloudflare DNS

Dlaczego moje crony nie działają z CloudFlare?

Połączyłeś swoją domenę z CloudFlare za pomocą DNS tego ostatniego i chcesz skonfigurować zadanie cron z obszaru klienta w powiązanej sekcji, ale zadanie wykonuje się tylko raz bez powtarzania się w żądanym przedziale czasu. Problem ten jest znany, CloudFlare blokuje wykonywanie cronów wysyłanych z naszych usług. Aby przezwyciężyć ten problem, oto obejście.

Uruchamianie zadania cron za pomocą CloudFlare

Zadania cron skonfigurowane w obszarze klienta nie działają, jeśli korzystasz z CloudFlare DNS. Aby rozwiązać ten problem, wykonaj poniższą procedurę:

  1. Utwórz subdomenę (na przykład: cron.domain.ext) ze swojej przestrzeni klienta, postępując zgodnie z tą dokumentacją
  2. Umieść plik, który ma być wykonywany przez zadanie cron w folderze z nazwą subdomeny w przestrzeni FTP hostingu.
  3. Utwórz zadanie cron z obszaru klienta, postępując zgodnie z instrukcjami powyżej w tej dokumentacji.
  4. Połącz się z kontem CloudFlare powiązanym z nazwą domeny.

W sekcji "DNS" dodaj rekord CNAME, jak pokazano w poniższym przykładzie:

Jak utworzyć zadanie cron z panelu LWS?

Zastąp"cron" nazwą swojej subdomeny, a"domain.ext" nazwą swojej domeny.

Upewnij się, że chmura jest szara, a nie pomarańczowa. To informuje CloudFlare, że nie chcesz korzystać z jego usług dla tej subdomeny.

Następnie możesz kliknąć przycisk"Dodaj rekord".

Wnioski

Teraz wiesz, jak : - Zrozumieć cel i działanie zadania cron 🤖

  • Konfigurować i uruchamiać skrypty automatycznie za pomocą zadania cron LWS ⏱️
  • Uzyskać dostęp do narzędzia Cron Task i skonfigurować okresowość
  • Korzystanie z różnych metod wywoływania skryptów (PHP, wget, cURL) 🌐
  • Używanie plików dziennika do monitorowania zadań cron 📝
  • Zarządzanie, modyfikowanie i przeglądanie utworzonych zadań cron 🛠️
  • Korzystanie z zadań cron z Cloudflare DNS w celu obejścia problemów z uruchomieniem 🛡️

Mamy nadzieję, że ten artykuł dostarczył ci wszystkich kluczy do opanowania zadań cron i wydajnej automatyzacji zadań systemowych.

Jeśli masz jakieś pytania, opinie lub wskazówki, którymi chcesz się podzielić, nie wahaj się zostawić ich w komentarzu. Dzięki za przeczytanie i do zobaczenia wkrótce po więcej praktycznych porad! 🙏💬

Oceń ten artykuł :

3/5 | 1 opinia

Ten artykuł był dla Ciebie przydatny ?

Article utileTak

Article non utileNie

MerciMerci ! N'hésitez pas à poser des questions sur nos documentations si vous souhaitez plus d'informations et nous aider à les améliorer.


Vous avez noté 0 étoile(s)

Podobne artykuły

0mn czytanie

Multi-domena - umieszczenie kilku domen w tej samej usłudze hostingowej.

1mn czytanie

Czy możliwe jest usunięcie funkcji antyspamowej RSpamD na hostingu współdzielonym?

0mn czytanie

Jak mogę wyświetlić wiadomości e-mail wysłane przy użyciu funkcji poczty PHP i zablokowane przez SPAMASSASSIN?


Zadaj pytanie zespołowi LWS i jego społeczności