Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Curl Crontab cron作业将不会使用带有参数的url运行_Curl_Cron_Crontab_Cron Task - Fatal编程技术网

Curl Crontab cron作业将不会使用带有参数的url运行

Curl Crontab cron作业将不会使用带有参数的url运行,curl,cron,crontab,cron-task,Curl,Cron,Crontab,Cron Task,我尝试运行这个php文件,一旦收到这两个参数,它就会发送一封带有php类的电子邮件。但cron似乎没有识别出这个命令。我想知道这里的错误在哪里?或者我可以在命令行中运行它并对其进行故障排除的方法也会非常有用 文件在浏览器中以完全相同的url字符串完美运行。 我还尝试了另一种变体: 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似乎没有识别出这个命令。我想知道这里的错误在哪里?或者我可以在命令行中运行它并对其进行故障排除的方法也会非常有用

文件在浏览器中以完全相同的url字符串完美运行。

我还尝试了另一种变体:

38  17  5   11  *    /usr/bin/sudo -u www /usr/bin/curl -sS "http://123.com/index.php?email=1&test=1"
我尝试在命令行中执行以下crul命令进行测试:

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

更新 现在我试过了

curl "http://123.com/index.php?email=1\&test=1"
更新 fedorqui提供的escaping&解决方案在我的测试文件中运行良好,因此我的原始文件有其他问题。调查

最后更新
结果表明,我们的身份验证文件包含在php文件中,使用php阻止了php文件的进一步发展!因此,它(不仅仅)是一种语法,而是包含遗忘转义
&
+auth文件的混合。

如注释中所示,
&
字符具有特殊含义,因此要将其视为文本,您需要转义它


如果您退出
&
,该怎么办<代码>http://123.com/index.php?email=1\&测试=1“在你更新的答案中有错误,你有
/
,而我说的是
\&
。你试了哪一个?好的!嗯,为了安全起见,我将把这段代码移动到一个脚本中,并在crontab中调用该脚本。转义字符等一定有问题。另外,您是否检查了cron的日志?有痕迹吗?@fedorqui我在一个测试文件中试过了,/escap成功了!但不是在我的原始文件中。我想可能是文件中发生了更复杂的事情导致了这一切!调查!
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
38 17 5 11 * root ... curl -sS "http:// ... email=1&test=1"
38 17 5 11 * root ... curl -sS "http:// ... email=1\&test=1"
                                                   ^