![GET Cron Job 出现 406 错误?](https://linux22.com/image/521199/GET%20Cron%20Job%20%E5%87%BA%E7%8E%B0%20406%20%E9%94%99%E8%AF%AF%EF%BC%9F.png)
我使用此 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