Używasz zadań CRON do odwiedzania adresu URL?

81

Mam aplikację internetową, która musi wykonywać powtarzające się zadania, Wysyłanie wiadomości i alertów, już używam strony skryptu do tych zadań, gdy jest ładowana w przeglądarce, tj. Http://example.com/tasks.php i dołączyłem za pomocą iframe na każdej stronie mojej aplikacji internetowej.

Teraz chcę to zmienić, aby używać zadań CRON, ponieważ pierwsze podejście może prowadzić do zacięcia, więc jak mogę zrobić zadanie CRON, które odwiedza http://example.com/tasks.php . Jednak nie chcę, aby to zadanie CRON tworzyło pliki wyjściowe, takie jak dzień. *!

Hostuję aplikację na współdzielonej usłudze hostingowej, która pozwala na pracę w CRON przez cPanel.

SaidbakR
źródło

Odpowiedzi:

220
* * * * * wget -O - http://yoursite.com/tasks.php >/dev/null 2>&1

To powinno działać dla ciebie. Wystarczy mieć wgetskrypt, który ładuje stronę.

Użycie -O -oznacza, że ​​dane wyjściowe żądania internetowego zostaną wysłane do STDOUT (standardowe wyjście)

dodając >/dev/null, nakazujemy przekierowanie standardowego wyjścia do czarnej dziury. dodając 2>&1, instruujemy, aby STDERR (błędy) był również wysyłany do STDOUT, a zatem wszystkie dane wyjściowe zostaną wysłane do czarnej dziury. (więc załaduje witrynę, ale nigdzie nie zapisze pliku)

Mitch Dempsey
źródło
jakie są te wszystkie gwiazdki na początku
Ashkan Mobayen Khiabani
@AshkanMobayenKhiabani Są częścią składni cron: nncron.ru/help/EN/working/cron-format.htm
Mitch Dempsey
1
Jedyne rozwiązanie, które działało u mnie pod Raspbian Stretch Lite. Doskonały! : D
that-ben
4
Jedna uwaga: dobrym pomysłem jest zacytowanie adresu URL, jeśli zawiera zapytanie, może nie działać bez cytowania wszystkiego.
jackJoe
24

Nie potrzebujesz przekierowania, używaj tylko

* * * * * wget -qO /dev/null http://yoursite.com/tasks.php
Diego Torres Milano
źródło
1
Dlaczego przekierowanie nie jest potrzebne?
Bradley Flood
1
-q|--quiet Turn off Wget's output.
Diego Torres Milano
1
Twoje polecenie również używa przekierowania, ale w innej postaci -qO / dev / null, prawda?
Pavel Nazarov,
Ściśle mówiąc, nie przekierowanie, ponieważ przekierowanie I / O to sprawa powłoki
Diego Torres Milano
21

Możesz użyć tego, curlco jest w tym wątku

Dla leniwych:

*/5 * * * * curl --request GET 'http://exemple.com/path/check.php?param1=1'

Będzie to wykonywane co 5 minut.

Jerzy Drożdż
źródło
10

Możesz także użyć lokalnego wiersza poleceń php-cli:

* * * * * php /local/root/path/to/tasks.php > /dev/null

Jest szybszy i zmniejsza obciążenie serwera internetowego.

mrraka
źródło
7

używam tych poleceń

wget -q -O /dev/null "http://example.com/some/cron/job.php" > /dev/null 2>&1

Zadanie Cron:

* * * * * wget -q -O /dev/null "http://example.com/some/cron/job.php" > /dev/null 2>&1
Abbas Arif
źródło
1
Ten wymaga wyjaśnienia, ale działa bardzo dobrze. Zwłaszcza jeśli tak jak ja masz znak „&” w swoim adresie URL. Rozwiązaniem jest umieszczenie adresu URL w cudzysłowie. Dlaczego wstawiasz / dev / null przed adresem URL?
Gfra54
2
Prawdopodobnie jest to spóźniona odpowiedź, ale nigdy nie jest za późno. Powód jest taki: / dev / null jest specjalnym obiektem systemu plików, który odrzuca wszystko, co do niego jest zapisane. Przekierowanie do niego strumienia oznacza ukrycie wyjścia. Część 2> & 1 oznacza „przekierowanie zarówno strumienia wyjściowego, jak i strumieni błędów”.
Abbas Arif
Ok, więc oznacza to, że zawartość wget jest przekierowywana do / dev / null (więc jest w zasadzie usuwana i ignorowana)? Dzięki
Gfra54
1
Tak dane wyjściowe wysyłane do / dev / null są ignorowane.
Abbas Arif
2

możesz użyć tego dla adresu URL z parametrami:

lynx -dump "http://vps-managed.com/tasks.php?code=23456"

lynx jest domyślnie dostępny we wszystkich systemach.

VPS-Managed.com
źródło
-dump zrzuca zawartość strony do pliku. To prawdopodobnie niepożądany efekt uboczny.
Wicher Visser
2

Możesz użyć tego polecenia:

links https://www.honeymovies.com
Abdul Alim
źródło
1

Możesz spróbować tego: -

    wget -q -O - http://www.example.com/> / dev / null 2> & 1

Spacerować
źródło
1

* * * * * wget --quiet https://example.com/file --output-document=/dev/null

Uważam, że jest --quietjaśniejsze niż -qi --output-document=/dev/nulljaśniejsze niż-O - > /dev/null

Vladimir Kornea
źródło