я получаю страницу с ошибкой 406 с этим cron.
РЕДАКТИРОВАТЬ
Я обновил cron, чтобы вместо этого использовать wget, но я все еще не получаю вывод со страницы. вот новый crontab:
/usr/bin/wget "https://abc.com/cron/sendBulletinEmails.php" >> /home/abc/public_html/cron/logs/sendBulletinEmails.log
однако при этом даже не используется файл журнала. вместо этого я получаю электронное письмо. вот вывод электронного письма:
--09:20:01-- https://abc.com/cron/sendBulletinEmails.php
=> `sendBulletinEmails.php'
Resolving abc.com... 69.91.162.123
Connecting to fin-iq.com|69.91.162.123|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
0K 122.58 B/s
09:20:02 (122.58 B/s) - `sendBulletinEmails.php' saved [101]
Я также пробовал этот crontab (чтобы получить правильный результат):
/usr/bin/wget --append-output=/home/abc/public_html/cron/logs/sendBulletinEmails.log "https://abc.com/cron/sendBulletinEmails.php"
но это тоже дает мне тот же журнал, что и электронное письмо. страница выводит текст, который я хочу зарегистрировать в моем файле журнала. какие-нибудь идеи относительно того, как заставить это работать?
Спасибо еще раз!
Старый
вот crontab (скопировано из cPanel):
* * * * * GET https://abc.com/cron/sendBulletinEmails.php >>
/home/abc/public_html/cron/logs/sendBulletinEmails.log
вот журнал:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>406 Not Acceptable</title>
</head><body>
<h1>Not Acceptable</h1>
<p>An appropriate representation of the requested resource /cron/sendSurveyEmails.php could not be found on this server.</p>
<p>Additionally, a 404 Not Found
error was encountered while trying to use an ErrorDocument to handle the request.</p>
</body></html>
Кроме того, когда я запускаю его из своего браузера, он работает.
есть идеи относительно того, почему это происходит? спасибо =)
Получение электронной почты от cron задумано. Вы можете отключить это, добавив >/dev/null 2>&1
до конца строки. (Подробнее о cron здесь: http://adminschoice.com/crontab-quick-reference)
Я думаю, что остальную часть вопроса можно было бы решить, прочитав еще немного о wget. Вы пытаетесь отправить вывод в файл журнала, используя стандартное перенаправление вывода. Содержимое этого файла всегда будет тем, что вы обычно видите на экране. Wget не отображает сам файл, поэтому перенаправление вывода здесь не работает. Хорошей новостью является то, что wget имеет встроенный переключатель для управления выходным файлом.
Попробуй это:
/usr/bin/wget -O /home/abc/public_html/cron/logs/sendBulletinEmails.log "https://abc.com/cron/sendBulletinEmails.php" >/dev/null 2>&1
Сервер может искать HTTP_USER_AGENT, чтобы заблокировать автоматизированные инструменты. Если возможно, попробуйте «wget». Он поддерживает -U or --user-agent=AGENT
включите командную строку, чтобы ваш сценарий выглядел так, как если бы это действительный сеанс браузера Firefox / Interner Explorer.
В противном случае вам может потребоваться написать небольшой сценарий, чтобы использовать более надежные функции этого модуля Perl, и чтобы задание cron запускало сценарий вместо прямого вызова get. Я нашел здесь несколько примеров: http://perlmeme.org/tutorials/lwp.html