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