我是编写 Cron 作业的新手,我似乎无法启动我的 PHP 脚本。我当前的 Cron 如下所示:
/usr/local/bin/curl http://{my-url}/ajax.php?cron=execute
我想我可以使用字符串查询和 cURL 来执行我的 ajax.php 文件中的特定函数,例如:
if(isset($_GET['cron']) && $_GET['cron']=='execute'){
populate_new_csv();
}
populate_new_csv() 函数当前在前端使用 AJAX 函数执行,以从 API 提取数据并生成填充有该数据的 .CSV 文件。我也在尝试通过 cron 工作来完成这项工作,但我的知识有点不足,因此将非常感谢任何帮助。
答案 0 :(得分:0)
感谢@user3783243 和@Roadowl 我终于能够使用 CRON 执行带有查询字符串的 php 函数/脚本。只是想发布我如何找到我的解决方案(以及它是什么)。
我首先通过 openSSH 访问我的网站并启动 crontab。我以 >> /home/{my_user}/public_html/cronerror.txt
结束每个 CRON,以便我可以记录任何错误。
我在 txt 中写下了所有我想测试的 CRON 作业示例,并一一测试。以下是一些示例:
* * * * * /usr/local/bin/curl "http://{my_url}/ajax.php?cron=execute" >> /home/{my_user}/public_html/cronerror.txt
* * * * * curl -s http://{my_url}/ajax.php?cron=execute >> /home/{my_user}/public_html/cronerror.txt
* * * * * curl -s "http://{my_url}/ajax.php?cron=execute" >> /home/{my_user}/public_html/cronerror.txt
* * * * * wget "http://{my_url}/ajax.php?cron=execute" >> /home/{my_user}/public_html/cronerror.txt
前三个在 cronerror.txt 文件中产生了 301 错误,但是最后一个使用 wget 而不是 curl 的示例工作正常。正如@Roadowl 所指出的,整个 URL 必须包含在引号中。