Как настроить команду задания wget cron - PullRequest
9 голосов
/ 09 ноября 2011

Как настроить команду cron job для выполнения URL?

/usr/bin/wget -q http://www.domain.com/cron_jobs/job1.php >/dev/null 2>&1

Почему я не могу заставить это работать !? Перепробовал все .. Сценарий PHP должен отправить электронное письмо и создать несколько файлов, но ничего не сделано

Команда возвращает это:

Output from command /usr/bin/wget -q http://www.domain.com/cron_jobs/job1.php ..

No output generated

... но он все равно создает пустой файл в /root при каждом выполнении !? Почему?

Ответы [ 4 ]

18 голосов
/ 09 ноября 2011

Используйте curl следующим образом:

/usr/bin/curl http://domain.com/page.php

Не беспокойтесь о выводе, он будет проигнорирован

8 голосов
/ 16 октября 2012

У меня была такая же проблема. Решение заключается в понимании того, что wget выводит две вещи: результаты запроса url и сообщения об активности, касающиеся его действия.

По умолчанию, если вы не укажете выходной файл, он создаст его, по-видимому, названный в честь файла в вашем URL, в текущей папке, где запускается wget.

Если вы хотите указать другой выходной файл:

-O outputfile.txt 

выведет результаты URL в файл outputfile.txt, перезаписав то, что там есть.

Если вы хотите добавить к этому файлу, напишите в std out, а затем добавьте к файлу оттуда: и вот фокус: написать в std out use:

-O-

второй дефис вместо имени файла и указывает wget записать результаты URL в стандартный вывод.

затем используйте синтаксис добавления >> для добавления к файлу по вашему выбору:

wget -O- http://www.invisibility.com >>/var/log/invisibility.log

Нижний регистр o указывает местоположение журнала активности, поэтому, если вы хотите регистрировать активность для запроса URL, вы можете:

wget -o http://someurl.com /var/log/activity.log

-q подавляет вывод сообщений об активности

wget -q http://someurl.com /var/log/activity.log

не будет регистрировать какую-либо активность в указанном файле, и я думаю, что это суть, где люди путаются.

Помните: -O это сокращение от --output-document -o является сокращением для --output-file, который является журналом активности.

3 голосов
/ 12 августа 2014

У меня ушло несколько часов, чтобы заставить его работать. Спасибо за людей, записывающих решения. Также необходимо убедиться, что нужны одинарные или двойные кавычки, иначе это приведет к неправильному анализу URL, что приведет к сообщениям об ошибках:

Это сработало (используя одинарные кавычки):

/usr/bin/wget -O -q 'http://domain.com/cron-file.php'

Это дало ошибки (с использованием двойных кавычек):

/usr/bin/wget -O -q "http://domain.com/cron-file.php"

Не знаю, нужен ли / usr / bin /. Прочитайте о различных способах выполнения порядка -O -q. Трудно найти надежный окончательный источник в Интернете по этой теме. Так много разных примеров.

Онлайн-руководство по wget можно найти здесь, чтобы узнать о доступных опциях (но уточните, какой дистрибутив Linux используется для актуальной версии): http://unixhelp.ed.ac.uk/CGI/man-cgi?wget

1 голос
/ 14 февраля 2013

Для использования wget для отображения HTML:

wget -qO- http://www.example.com
...