Jak skonfigurować zadanie Cron w hostingu cPanel (+WP cron)

Zadania Cron pozwalają uruchamiać skrypty i automatyzować powtarzalne zadania, które mogą zająć dużo czasu, jeśli są wykonywane ręcznie. W tym poście pokażemy, jak skonfigurować zadanie cron w cPanel i jak skonfigurować prawdziwy cron dla WordPress.

Ten poradnik obejmuje następujące zagadnienia:

Co to jest zadanie Cron?

Zadanie cron umożliwia automatyzację poleceń lub skryptów w witrynie, które wymagają wywoływania w regularnych odstępach czasu lub za każdym razem, gdy określone zdarzenia kończą powtarzalne zadania.

cPanel zawiera oprogramowanie o nazwie cron (od greckiego słowa oznaczającego czas, Chronos). To narzędzie pozwala zaplanować zadania, które system uruchamia wielokrotnie. Zadania te nazywane są zadaniami cron lub harmonogramami cron i są uruchamiane z pliku o nazwie crontab (tabela CRON), który zawiera listę wszystkich zadań, które cron musi wykonać.

Możesz ustawić polecenie lub skrypt za pomocą zadań cron, które będą uruchamiane o określonej porze każdego dnia, tygodnia itp. Na przykład możesz ustawić zadanie cron, aby uruchamiać kopię zapasową lub usuwać pliki tymczasowe, aby zwolnić miejsce na dysku na serwerze co tydzień (lub co dwie godziny, określonego dnia miesiąca lub o 14:36 W każdą środę).

Po skonfigurowaniu Zadania cron działa automatycznie zgodnie z harmonogramem.

Części polecenia Cron

Polecenie Cron zazwyczaj składa się z czterech części:

  • Timing: ta część pozwala ustawić, kiedy skrypt ma być uruchamiany, określając regularne interwały w zakresie minut, godzin, dni, miesięcy i dni powszednich.
  • Execute: ta część wywołuje PHP, które wymaga uruchomienia zadania cron, które zwykle znajduje się w ścieżce /usr/bin/php.
  • Ścieżka skryptu: jest to pełna ścieżka do pliku, który chcesz uruchomić (np. /home/user/public_html/index.php)
  • Wyjście: ta opcjonalna część pozwala zapisać wyjście cron do pliku lub odrzucić je. Na przykład, aby odrzucić wyjście może wymagać dodania czegoś takiego: / dev / null 2>&1.

Zwykle każdy skrypt, który wymaga Zadania cron, dostarczy Ci ścieżkę lub polecenie potrzebne do użycia tego skryptu. Dostawca usług hostingowych może również dostarczyć lub przekazać konkretne instrukcje dotyczące strukturyzacji poleceń zadań cron. Następnie tworzysz zadanie cron za pomocą dostarczonej ścieżki lub polecenia (i zastępujesz wszelkie ciągi zastępcze w wierszu lub poleceniu szczegółami witryny, jeśli jest to wymagane).

Na przykład na poniższym zrzucie ekranu Mój Pulpit nawigacyjny cPanel automatycznie dostarczył kilka przykładów poleceń PHP z nazwą użytkownika mojej witryny (helpservices) i przykładową wersją PHP zawartą w ścieżce poleceń.

PHP command examples.
Przykłady poleceń PHP.

Uwaga: cPanel zaleca dobrą znajomość poleceń Linuksa, aby efektywnie korzystać z zadań cron i uruchamiać skrypt przed administratorem hostingu przed dodaniem Zadania cron, aby uniknąć problemów.

Jak skonfigurować zadanie Cron w cPanel

Aby skonfigurować zadanie cron w cPanel, Zaloguj się do Pulpitu nawigacyjnego cPanel, a następnie przewiń w dół do sekcji Zaawansowane i kliknij Zadania Cron.

cPanel Dashboard - Cron Jobs
Wybierz Zadania Cron w sekcji Zaawansowane cPanel.

Powoduje to wyświetlenie ekranu Zadań Cron. Tutaj możesz skonfigurować powiadomienia e-mail (patrz następna sekcja), dodać nowe zadania crona i wyświetlić listę wszystkich zadań crona zadania skonfigurowane i aktualnie uruchomione.

Przewiń w dół do sekcji Dodaj nowe zadanie crona. Możesz wybrać wstępnie ustawiony interwał dla Zadania cron do uruchomienia z menu rozwijanego Wspólne Ustawienia lub wprowadzić własne wartości niestandardowe, korzystając z następujących opcji:

  • Minuta: liczba minut między każdym uruchomieniem zadania cron lub minuta każdej godziny, w której chcesz uruchomić zadanie cron.
  • Godzina: liczba godzin między każdym uruchomieniem zadania cron lub godzina każdego dnia, w którym chcesz uruchomić zadanie cron.
  • Dzień: liczba dni między każdym uruchomieniem zadania cron lub dniem miesiąca, w którym chcesz uruchomić zadanie cron.
  • Miesiąc: liczba miesięcy między każdym uruchomieniem zadania cron lub miesiącem roku, w którym chcesz uruchomić zadanie cron.
  • Dzień tygodnia: dni tygodnia, w których chcesz uruchomić zadanie crona.

Cron - Common Settings
Cron-wspólne pola tekstowe ustawień.

Menu Common Settings zawiera typowe ustawienia konfiguracji zadania cron z cyframi lub gwiazdkami w nawiasach wskazującymi, kiedy zadanie cron powinno zostać uruchomione.

Cron - Common Settings menu.
Cron-wspólne menu ustawień.

Jeśli wybierzesz jedno z tych ustawień, system automatycznie zapełni poniższe pola tekstowe wybranymi ustawieniami.

Tak więc, na przykład, jeśli wybierzemy opcję skonfigurowania Zadania cron, aby uruchomić skrypt raz w tygodniu…

Cron - Common Settings: Weekly schedule.
Ustawmy zadanie crona na uruchamianie raz w tygodniu.

Pola tekstowe zostaną automatycznie wypełnione wartościami naszego wybranego ustawienia.

Cron Job text boxes auto-populated with values to run once a week.
Pola tekstowe Zadań Cron są automatycznie wypełniane wartościami uruchamianymi raz w tygodniu.

W powyższym przykładzie nasze zadanie crona ma być uruchamiane w każdą niedzielę każdego miesiąca dokładnie o północy.

Możesz jednak użyć podrzędnych menu rozwijanych, aby wprowadzić niestandardowe wartości w polach tekstowych. Pozwala to łatwo modyfikować i dostosowywać zaplanowane interwały Zadania cron.

Cron Job schedule with adjusted settings.
Dostosuj ustawienia zadania cron za pomocą podrzędnych menu rozwijanych i pól tekstowych.

Ostatnim krokiem jest wprowadzenie rzeczywistej komendy, którą chcesz uruchomić zadanie cron. Musisz określić bezwzględną ścieżkę do polecenia, które chcesz uruchomić.

Wpisz lub wklej polecenie w pole tekstowe polecenie: i kliknij Dodaj nowe zadanie crona.

Cron job command
Wpisz lub wklej w poleceniu Zadania cron.

Spowoduje to dodanie zadania cron do bieżącej listy zadań Cron.

Current cron jobs
Twoje zadanie cron zostało dodane do bieżącej listy zadań Cron.

Jak otrzymywać powiadomienia e-mail po uruchomieniu zadań Cron

Możesz zdecydować się na otrzymywanie (lub przestać odbierać) wiadomości e-mail za każdym razem, gdy zadanie cron uruchomi polecenie, które wygeneruje wynik.

Jest to przydatne, jeśli chcesz wiedzieć, kiedy jedno z Twoich zadań nie działa i chcesz przejrzeć błędy.

Po prostu przewiń w dół do sekcji E-mail Cron, wprowadź adres e-mail i kliknij przycisk Aktualizuj e-mail.

Cron Email
Otrzymuj powiadomienia e-mailem po uruchomieniu zadania cron.

Możesz także zdecydować, że nie będziesz otrzymywać e-maili po uruchomieniu zadań cron:

  • Aby wyłączyć powiadomienia e-mail dla wszystkich zadań cron, Usuń adres e-mail. Aby to zrobić, pozostaw pole e-mail puste i kliknij przycisk Aktualizuj e-mail. Aktualny adres e-mail powinien być wyświetlany jako (brak).
  • Aby wyłączyć powiadomienia e-mail dla pojedynczego zadania crona, dodaj informacje dostarczone przez hosta (patrz powyższy zrzut ekranu), aby przekierować wyjście polecenia do /dev/null. (np. / usr/local/cPanel/bin /is_script_stuck/dev / null 2>&1)

Jak edytować zadanie crona

Aby edytować ustawienia zadań cron, przejdź do sekcji bieżące zadania Cron i kliknij łącze akcje > Edytuj.

Edit cron job.
Edytuj zadanie crona.

Zmień wartości w polach tekstowych i kliknij przycisk Edytuj linię, aby zaktualizować ustawienia.

Edit cron job settings.
Edytuj ustawienia zadań cron.

Ustawienia zadań cron zostały zaktualizowane.

Updated cron job settings.
Zaktualizowane ustawienia zadań cron.

Jak usunąć zadanie crona

Aby usunąć zadanie crona, przejdź do sekcji bieżące zadania crona i kliknij łącze akcje > Usuń.

Delete cron job.
Usuń zadanie crona.

Potwierdź usunięcie, naciskając przycisk Usuń.

Confirm cron job deletion.
Potwierdź usunięcie zadania cron.

Wybrane zadanie crona zostanie usunięte z sekcji bieżące zadania crona.

No cron jobs.
Brak aktualnych zadań cron.

Przydatne wskazówki i dodatkowe informacje na temat korzystania z zadań Cron

Oto kilka dodatkowych wskazówek i przydatnych informacji na temat korzystania z zadań cron:

Jeśli Zadania Cron nie są dostępne na pulpicie nawigacyjnym cPanel

Niektóre hosty nie pozwalają użytkownikom na uruchamianie zadań cron. Jeśli twój host nie udostępnił zadań cron na pulpicie nawigacyjnym cPanel, nadal możesz tworzyć i uruchamiać zadania cron za pomocą usług zewnętrznych, takich jak wymienione poniżej:

Jak sprawdzić, czy Twoje zadanie Cron zostało uruchomione

Niektóre zadania crona generują dane wyjściowe (np. plik, e-mail lub strona internetowa), a inne nie. Łatwiej jest sprawdzić, czy cron działał dla zadań, które generują dane wyjściowe.

W przypadku zadań cron, które wykonują zadania za sceną i nie generują danych wyjściowych, musisz mieć dostęp root do serwera, aby sprawdzić dzienniki i ustalić, czy zadanie zostało uruchomione zgodnie z harmonogramem.

Możesz sprawdzić logi serwera za pomocą klienta SSH. Twój host powinien dostarczyć polecenie to sprawdź dziennik dla skryptu cron, a wynik będzie zwykle zawierał datę i godzinę uruchomienia zadania cron, a także nazwę serwera, identyfikator cron, nazwę użytkownika cPanel i uruchomione polecenie. Nazwa skryptu powinna być wyświetlana na końcu polecenia.

Jak uniknąć Cronflicts

cPanel zaleca zachowanie ostrożności przy planowaniu zadań cron. Powinieneś poświęcić wystarczająco dużo czasu między zadaniami crona, aby ukończyć poprzednie zadanie crona. Jeśli zaplanujesz ich zbyt częste uruchamianie, serwer może rozpocząć kolejne zadanie crona przed zakończeniem ostatniego zadania crona. To powielanie może spowolnić działanie serwera i obniżyć jego wydajność.

Ponadto wielu gospodarzy zaleca, aby nie ustawiać cronów w regularnych odstępach czasu mniejszych niż 5 minut (niektórzy gospodarze nie pozwolą nawet na ich uruchamianie w odstępach krótszych niż 15 minut).

WordPress Cron (WP-cron)

Oprócz uruchamiania zadań cron z hostowanego serwera, WordPress ma również wewnętrzną wbudowaną funkcję, której używa do uruchamiania zaplanowanych zadań w witrynach WordPress, zwaną WordPress Cron (WP-cron, wp-cron.php).

Rdzeń WordPress i wiele wtyczek wymaga systemu planowania do wykonywania zadań opartych na czasie. Polegają one na WP-cron do uruchamiania funkcji zaplecza, takich jak sprawdzanie aktualizacji, tworzenie kopii zapasowych, usuwanie starych komentarzy z kosza itp.

Wiele usług hostingowych jest jednak współdzielonych i nie zapewnia dostępu do harmonogramu systemu. WP-cron pozwala WordPress uruchomić na prawie każdym środowisku hostingowym.

Uwaga: Możesz przeglądać i kontrolować zdarzenia cron w systemie WP-cron za pomocą wtyczki takiej jak WP Cronrol.

Jak skonfigurować prawdziwy Cron dla WordPress

Chociaż wbudowany moduł obsługi Cron WordPress jest naprawdę przydatną funkcją, WP-cron nie jest prawdziwym zadaniem cron. Symuluje tylko to, co robi cron systemowy. Jednak WP-cron nie działa w sposób ciągły. Jest on uruchamiany tylko wtedy, gdy ktoś odwiedza Twoją witrynę.

W witrynach o dużym natężeniu ruchu WP-cron nie stanowi problemu. Jak zauważył w sekcji komentarzy tego postu jeden z naszych członków (David Anderson z UpdraftPlus.com):

  • Kod w WordPress core jest wywoływany podczas ładowania strony tylko wtedy, gdy jest zaległe zadanie cron (tj. tylko w razie potrzeby).
  • W witrynie o dużym natężeniu ruchu zadanie cron będzie działać dokładnie zgodnie z harmonogramem. Jeśli przełączysz się na zewnętrzny wywołujący cron, zadanie cron zostanie uruchomione tylko wtedy, gdy ten harmonogram zostanie osiągnięty.
  • Witryny o dużym natężeniu ruchu są bardziej skomplikowane, więc mają więcej zadań cron. NA WP-cron Zadania działają dokładnie wtedy, gdy są potrzebne. Przełączenie na zewnętrzny cron znacznie zwiększa szanse na to, że zadania cron nie będą działać na czas, ponieważ będą teraz działać tylko z dowolną częstotliwością ustawioną przez twoje zadanie (co 10 minut, 5 minut, 1 minuta itp.).

W witrynach o małym natężeniu ruchu można jednak przegapić harmonogramy cron, jeśli nie wystarczy częstych użytkowników odwiedzających witrynę, aby załadować stronę.

Podczas gdy eksperci z naszego zespołu i społeczności członków utrzymują, że nie należy wyłączać WP-cron i używać zewnętrznego harmonogramu cron, chyba że dokładnie wiesz, co robisz, jeśli kiedykolwiek zostaniesz poproszony o wyłączenie WP-cron, oto jak to zrobić:

Aby wyłączyć WP-cron, otwórz wp-config.plik php do edycji i dodać następujące przed “To wszystko, przestań edytować! Szczęśliwego wydawnictwa.” Kolejka:

define (‘DISABLE_WP_CRON’, true);

Disable WP-Cron.
Wyłącz WP-cron.

Uwaga: to wyłącza WP-cron z uruchamiania przy ładowaniu strony, a nie gdy nazywa się directly przez wp-cron.php.

Następnie możesz skonfigurować harmonogram zadań systemu, aby złożyć żądanie internetowe do wp-cron.plik php poprzez utworzenie zadania cron i dodanie następującego polecenia (pamiętaj, aby zastąpić yourdomain.com z Twoją rzeczywistą domeną):

wget-q – O- http://yourdomain.com/wp-cron.php?doing_wp_cron > / dev / null 2 > &1

Ostatni punkt, o którym warto wspomnieć (jeszcze raz, dzięki Davidowi Andersonowi za podniesienie tego):

Jedynym prawdziwym przypadkiem przejścia na zewnętrzny cron jest to, że jeśli jesteś w witrynie o bardzo małym natężeniu ruchu, z jakiegoś powodu nie możesz zaplanować wizyt zewnętrznych (np. Twoja witryna jest chroniona hasłem) i ważne jest, aby te zadania działały na czas. W przeciwnym razie zostaw to w spokoju, a wszystko będzie dobrze.

Zgadzamy się z tym. W związku z tym, jeśli Twoje witryny działają na WPMU DEV hosting, automatycznie uruchamiamy WP-cron co 5 minut. Posiadanie domyślnego ustawienia cron pomaga witrynom o małym natężeniu ruchu, ponieważ gwarantuje zaplanowane zadania uruchamiane co najmniej co 5 minut.

Wreszcie, jak podkreśla David Anderson, jeśli masz wiele zadań cron, to nawet każda minuta 1 może nie wystarczyć do przetworzenia ich wszystkich. Wiele popularnych wtyczek ma zadania, które mają być uruchamiane co minutę. Jeśli to zajmie dużo czasu, mogą opóźnić bieg innych.

WP-Cron na WordPress Multisite

Jeśli używasz WordPress Multisite, sprawdź ten samouczek (od członka Daniel Sundbeck z ShortURL.gg) dlaczego WPMU cron różni się od samodzielnej instalacji WordPress i jak ją poprawnie skonfigurować.

– Jesteś Już Zdruzgotany?

Niepotrzebnie! A jeśli to wydaje się zbyt cronplicated nie martw się. Na szczęście nasz zespół jest tutaj, aby zapewnić fachową pomoc 24/7 i wsparcie we wszystkim, czego potrzebujesz.