Crontab cron作业不会与带参数的url一起运行

时间:2014-11-06 14:38:06

标签: curl cron crontab cron-task

38  17  5   11  *    /usr/bin/sudo -u www /usr/bin/curl -sS "http://123.com/index.php?email=1&test=1"

我尝试运行这个php文件,一旦收到这两个参数就发送一个带有php类的电子邮件。但似乎cron没有认识到这个命令。我想知道这里的错误在哪里?或者我可以在命令行中运行它并对其进行故障排除的方法也非常有用!

文件在浏览器中完全可以使用完全相同的网址字符串运行。

我还尝试了另一种变体:

38  17  5   11  *       root    /usr/bin/sudo -u _www /usr/bin/curl -sS "http://123.com/index.php?email=1&test=1"

我试图在命令行中执行这些crul命令进行测试:

curl "http://123.com/index.php?email=1&test=1"

curl "http://123.com/index.php?email=1\&test=1"

更新

现在我尝试了这个

echo "TEST" >> $CRONLOG
/usr/bin/sudo -u _www /usr/bin/curl -sS "http://123.com/index.php?email=1&test=1" >> $CRONLOG

更新

由fedorqui提供的逃避和解决方案的解决方案在我的测试文件中运行良好,因此我的orignal文件出现了其他问题。调查

最终更新

我们的php文件中使用php包含的身份验证文件阻止了php文件的进一步发展!所以它不是(仅)一种语法,而是包括遗忘转义& + auth文件的混合。

1 个答案:

答案 0 :(得分:3)

如评论中所示,&字符具有特殊含义,因此要将其视为文字,您需要将其转义。

38 17 5 11 * root ... curl -sS "http:// ... email=1&test=1"

38 17 5 11 * root ... curl -sS "http:// ... email=1\&test=1"
                                                   ^