#php #linux #cron #wget
#php #linux #cron #wget
Вопрос:
Я пытался выполнить cron и запускать URL-адрес каждые 5 минут.
Я пытался использовать WGET, однако я не хочу загружать файлы на сервер, все, что я хочу, это просто запустить его.
Это то, что я использовал (crontab):
*/5 * * * * wget http://www.example.com/cronit.php
Есть ли какая-либо другая команда, которую можно использовать, кроме wget, чтобы просто запустить URL, а не удалять его?
Комментарии:
1. Возможно, слишком поздно, но вы могли бы использовать curl, режим работы по умолчанию не загружается, но не всегда присутствует на серверах.
2. Да, curl определенно кажется лучшим решением, чем использование wget.
Ответ №1:
Вы могли бы указать wget не загружать содержимое несколькими различными способами:
wget --spider http://www.example.com/cronit.php
который просто выполнит запрос HEAD, но, вероятно, сделает то, что вы хотите
wget -O /dev/null http://www.example.com/cronit.php
который сохранит выходные данные в /dev /null (черная дыра)
Возможно, вы также захотите взглянуть на переключатель wget -q, который не позволяет ему создавать выходные данные
Я думаю, что лучшим вариантом, вероятно, было бы:
wget -q --spider http://www.example.com/cronit.php
это если только у вас нет какой-то специальной логики, проверяющей метод HTTP, используемый для запроса страницы
Комментарии:
1.
wget --quiet --spider --timeout=0 --tries=1 "http://www.example.com/cronit.php"
— это то, что я использую для «пинга» давно запущенного php-скрипта … отказ от ответственности, у меня нет большого опыта работы сwget
orcrontab
, поэтому прочитайте руководство и протестируйте решение в вашей собственной среде.2. Я обнаружил, что если я использую
-q
опцию, скрипт (на моем сервере) не выполняется, поэтому я оставляю это. Когда я запускаю скрипт в терминале, я вижу выходные данные, но приводит ли это к проблемам при его запуске в cronjob? Я думаю, что нет, но я могу ошибаться.
Ответ №2:
wget -O- http://www.example.com/cronit.php >> /dev/null
Это означает отправить файл в стандартный вывод и отправить стандартный вывод в /dev/null
Ответ №3:
Я попробовал следующий формат, работает нормально
*/5 * * * * wget --quiet -O /dev/null http://localhost/cron.php
Комментарии:
1. У меня тоже работает, но немного запутался, как
--quiet
и-O
сосуществуют.
Ответ №4:
Если вы хотите получать выходные данные только при сбое php:
*/5 * * * * php -r 'echo file_get_contents(http://www.example.com/cronit.php);'
Или более безопасный:
*/5 * * * * php /var/www/example/cronit.php
Таким образом, вы получаете электронное письмо от cronjob только при сбое скрипта, а не при каждом вызове php.
Ответ №5:
вы можете просто использовать этот код для запуска скрипта с помощью задания cron с помощью cpanel:
wget https://www.example.co.uk/unique-code