GET Cron Job 出现 406 错误?

GET Cron Job 出现 406 错误?

我使用此 cron 收到 406 错误页面。

编辑

我已更新 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>

另外,当我从自己的浏览器运行它时,它可以运行。

知道为什么会发生这种情况吗?谢谢 =)

答案1

从 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

答案2

服务器可能正在寻找 HTTP_USER_AGENT 来阻止自动化工具。如果可用,请尝试“wget”。它支持-U or --user-agent=AGENT命令行上的开关,以帮助您的脚本看起来像是有效的 Firefox/Interner Explorer 浏览器会话。

否则,您可能需要编写一个小脚本来使用该 Perl 模块的更强大的功能,并让 cron 作业运行该脚本而不是直接调用 get。我在这里找到了一些例子:http://perlmeme.org/tutorials/lwp.html

相关内容