Jestem nowy w używaniu zadania cron. Nie wiem nawet, jak to napisać. Próbowałem wyszukiwać w Internecie, ale nadal nie rozumiem tego dobrze. Chcę utworzyć zadanie cron, które będzie wykonywać mój kod co minutę. Do jego tworzenia używam PHP. To nie działa.
Przykład
run.php (kod, który będzie wykonywany co minutę)
<?php
echo "This code will run every minute";
?>
cron.php
<?php
$path = dirname(__FILE__);
$cron = $path . "/run.php";
echo exec("***** php -q ".$cron." &> /dev/null");
?>
Załóżmy, że te dwa pliki znajdują się w tym samym folderze.
Czy kod, który zrobiłem jest zły? Jeśli jest źle, uprzejmie powiedz mi, jak to naprawić.
crontab
Odpowiedzi:
To najlepsze wyjaśnienie z kodem w PHP, jakie do tej pory znalazłem:
http://code.tutsplus.com/tutorials/managing-cron-jobs-with-php--net-19428
W skrócie:
Chociaż na pierwszy rzut oka składnia planowania nowej pracy może wydawać się zniechęcająca, w rzeczywistości jest ona stosunkowo łatwa do zrozumienia, gdy ją zepsujesz. Zadanie cron zawsze będzie miało pięć kolumn, z których każda reprezentuje chronologiczny `` operator '', po którym następuje pełna ścieżka i polecenie do wykonania:
* * * * * home / path / to / command / the_command.sh
Każda z kolumn chronologicznych ma określone znaczenie dla harmonogramu zadania. Są one następujące:
Na przykład, jeśli ktoś chciałby zaplanować zadanie na 12 rano pierwszego dnia każdego miesiąca, wyglądałoby to mniej więcej tak:
0 0 1 * * home / path / to / command / the_command.sh
Gdybyśmy chcieli zaplanować uruchamianie zadania w każdą sobotę o 8:30, zapisalibyśmy to w następujący sposób:
30 8 * * 6 home / path / to / command / the_command.sh
Istnieje również wielu operatorów, których można użyć do dalszego dostosowania harmonogramu:
Odwiedź link do pełnego artykułu, który wyjaśnia:
źródło
W ten sam sposób, w jaki próbujesz uruchomić cron.php, możesz uruchomić inny skrypt PHP. Będziesz musiał to jednak zrobić za pośrednictwem interfejsu CLI.
Następnie dodaj wpis do tabeli crontab:
Gdyby skrypt run.php miał uprawnienia do wykonywania, mógłby zostać wyświetlony bezpośrednio w tabeli crontab, bez części / usr / bin / php. Część „env php” w skrypcie mogłaby znaleźć odpowiedni program do rzeczywistego uruchomienia kodu PHP. Tak więc dla wersji `` wykonywalnej '' - dodaj uprawnienia do pliku wykonywalnego do pliku:
a następnie dodaj następujący wpis do crontab:
źródło
Dodany do Alistera, możesz zazwyczaj edytować crontab (nie zawsze tak jest), wpisując crontab -e w sesji ssh na serwerze.
Gwiazdy reprezentują (* oznacza każdą z tej jednostki):
Możesz przeczytać więcej na ten temat tutaj .
źródło
Wpisz następujące polecenie w terminalu linux / ubuntu
wybierz edytora (czasami prosi o edytora) i to działa co minutę
źródło
Może to zależeć od Twojego usługodawcy hostingowego, jeśli nie hostujesz własnych treści. Jeśli Twój usługodawca hostingowy obsługuje tworzenie zadań chronionych, może mieć formularz do wypełnienia, który pozwala wybrać częstotliwość i wprowadzić bezwzględną ścieżkę do pliku do wykonania. Na przykład mój host sieciowy (DreamHost) umożliwia mi tworzenie niestandardowych zadań cron, wpisując bezwzględną ścieżkę do pliku i wybierając częstotliwość z menu wyboru. Może to nie być możliwe dla twojego serwera, w takim przypadku musisz edytować plik crontab bezpośrednio lub za pomocą metody specyficznej dla twojego hosta.
Jak wyszczególnił Alister Bulman powyżej, utwórz plik PHP do uruchomienia przy użyciu CLI (pamiętaj, aby umieścić go
#!/usr/bin/env php
na samym początku pliku przed<?php
znacznikiem. Dzięki temu powłoka wie, który plik wykonywalny powinien zostać wywołany podczas uruchamiania skryptu.źródło
dlaczego nie używasz curl? logicznie rzecz biorąc, jeśli uruchomisz plik php, wykonasz go za pomocą adresu URL w przeglądarce. jego bardzo proste, jeśli uruchomisz curl
źródło
źródło
Najpierw otwórz serwer SSH z nazwą użytkownika i hasłem i zmień na domyślnego użytkownika root (użytkownika ze wszystkimi uprawnieniami), a następnie wykonaj poniższe czynności,
crontab -l
teraz zobaczysz listę wszystkich cronjobów.crontab -e
plik, w którym zostaną otwarte wszystkie zadania cron.min hr dayofmonth month dayofweek pathtocronjobfile
i zapisz plik.crontab: installing new crontab
teraz ponownie sprawdź listę cronjobs, na której zostanie wyświetlone zadanie cron.źródło
Lepiej użyj projektu Cron w połączeniu z Linux cronjob do tego zadania. Umożliwia konfigurację czasu działania w kodzie PHP, obsługuje zadania w tle i jest łatwy w użyciu.
Pierwszy krok wywołuj skrypt PHP co minutę:
W drugim kroku użyj pakietu cron / cron, aby skonfigurować czasy wykonywania bezpośrednio w PHP.
Znalazłeś szczegółowe informacje, jak używać w połączonym repozytorium.
źródło
Stwórz taką cronjob, która będzie działać w każdej minucie
źródło
Jest prosty sposób na rozwiązanie tego problemu: możesz uruchomić plik php przez crona co 1 minutę, a wewnątrz pliku wykonywalnego php wykonaj instrukcję "if", która ma być wykonana, gdy czas "teraz" wygląda tak
źródło
źródło