Использование заданий CRON для посещения URL-адреса?

81

У меня есть веб-приложение, которое должно выполнять повторяющиеся задачи, отправка сообщений и предупреждений, я уже использую страницу сценария для выполнения этих задач, когда она загружается в браузере, т.е. http://example.com/tasks.php, и я включил это с помощью iframe на каждой странице моего веб-приложения.

Теперь я хочу изменить это, чтобы использовать задания CRON, потому что первый подход может привести к снижению производительности. Итак, как я могу сделать задание CRON, которое посещает http://example.com/tasks.php . Однако я не хочу, чтобы это задание CRON создавало выходные файлы, такие как day. *!

Я размещаю приложение на общем хостинге, который разрешает задания CRON через cPanel.

СаидбакР
источник

Ответы:

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

Это должно сработать для вас. Просто есть wgetскрипт, который загружает страницу.

Использование -O -означает, что вывод веб-запроса будет отправлен в STDOUT (стандартный вывод)

добавляя, >/dev/nullмы указываем, что стандартный вывод будет перенаправлен в черную дыру. добавляя, 2>&1мы инструктируем STDERR (ошибки) также отправляться в STDOUT, и, таким образом, весь вывод будет отправлен в черную дыру. (так что он загрузит веб-сайт, но никогда никуда не запишет файл)

Митч Демпси
источник
что это за звездочки в начале
Ашкан Мобайен Хиабани
@AshkanMobayenKhiabani Они являются частью синтаксиса cron: nncron.ru/help/EN/working/cron-format.htm
Митч Демпси
1
Единственное решение, которое у меня работало под Raspbian Stretch Lite. Отлично! : D
that-ben
4
Одно замечание: рекомендуется цитировать URL-адрес, если он содержит запрос, он может не работать, если все цитируется.
jackJoe
24

Вам не нужно перенаправление, используйте только

* * * * * wget -qO /dev/null http://yoursite.com/tasks.php
Диего Торрес Милано
источник
1
Почему перенаправление не нужно?
Bradley Flood
1
-q|--quiet Turn off Wget's output.
Diego Torres Milano
1
ваша команда также использует перенаправление, но в другой форме -qO / dev / null, не так ли?
Павел Назаров
Строго говоря, это не перенаправление, поскольку перенаправление ввода-вывода - это оболочка,
Диего Торрес Милано
21

Вы можете использовать curlкак есть в этой теме

Для ленивых:

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

Это будет выполняться каждые 5 минут.

Ежи Дродж
источник
10

Вы также можете использовать локальную командную строку php-cli:

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

Это быстрее и снижает нагрузку на ваш веб-сервер.

мррака
источник
7

я использую эти команды

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

Задача Cron:

* * * * * wget -q -O /dev/null "http://example.com/some/cron/job.php" > /dev/null 2>&1
Аббас Ариф
источник
1
Этот требует пояснений, но он работает очень хорошо. Особенно, если, как и я, у вас в URL есть амперсанд. Помещение URL-адреса в кавычки - это решение. Почему вы помещаете / dev / null перед URL-адресом?
Gfra54 01
2
Возможно, это поздний ответ, но никогда не поздно. Причина: / dev / null - это особый объект файловой системы, который отбрасывает все, что в него записано. Перенаправление потока в него означает скрытие вывода. Часть 2> & 1 означает «перенаправить как поток вывода, так и поток ошибок».
Аббас Ариф
Итак, это означает, что содержимое wget перенаправляется в / dev / null (поэтому оно в основном удаляется и игнорируется)? Спасибо
Gfra54
1
Да, вывод, отправленный в / dev / null , игнорируется.
Аббас Ариф,
2

вы можете использовать это для URL с параметрами:

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

lynx по умолчанию доступен во всех системах.

VPS-Managed.com
источник
-dump выгружает содержимое страницы в файл. Это, возможно, нежелательный побочный эффект.
Wicher Visser
2

Вы можете использовать эту команду:

links https://www.honeymovies.com
Абдул Алим
источник
1

Вы можете попробовать это: -

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

Ходить
источник
1

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

Я нахожу --quietяснее -qи --output-document=/dev/nullяснее, чем-O - > /dev/null

Владимир Корня
источник