【问题标题】:Error with CRON executing PHP scriptCRON 执行 PHP 脚本时出错
【发布时间】:2014-04-19 04:38:29
【问题描述】:

我有一个名为 urlretrieve.php 的脚本,已放置在我的 Web 服务器上。假设网址是 www.example.com/urlretrieve.php,当您访问该网站时,会下载来自另一个站点的文件并将其放置在与 Web 服务器上的 urlretrieve.php 相同的文件夹中。我需要每周访问(执行)一次该网站。我的问题是,我的 cron 作业命令应该是什么?目前我正在使用:

php /home/user/public_html/urlretrieve.php

它不工作。我已经测试了很多其他人,但没有运气。

我正在使用 CPANEL。

这是 urlretrieve.php 脚本

<?php 
$url = "ftp://alt.ncsbe.gov/data/ncvhis1.zip";
$fh = fopen(basename($url), "wb");
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_FILE, $fh);
curl_exec($ch);
curl_close($ch);
?>

【问题讨论】:

  • $PATH 变量可能不包括php 的位置。假设它正在运行 CentOS(使用 cPanel)尝试将 php 更改为 /usr/bin/php。此外,crontab 文件中的完整 cron 条目应为 @weekly /usr/bin/php /home/user/public_html/urlretrieve.php,但如果通过 cPanel 完成,则不需要。
  • 是的,我现在将四组数字设置为每周五 4 点,但出于测试目的一直在不断更改它们。我昨天尝试了/usr/bin/php,但没有运气。这是我的服务器管理员告诉我的:“您的命令看起来不错。我认为一切都应该运行正常。只需调用“php”就可以正常工作,而无需专门在 bin 或库连接中定位命令。”

标签: php curl cron cpanel


【解决方案1】:

我刚刚测试了这个。有效。

33 14 * * 5 curl ftp://alt.ncsbe.gov/data/ncvhis1.zip > /home/user/ncvhis1.zip

【讨论】:

  • 不幸的是,两者都不起作用。是否可能在服务器上未正确设置某些内容?
  • 当然,curl 可能没有安装,它可能不在路径中,您可能正在使用不同的 cron 守护程序。请记住,cron 将在星期一午夜运行。不随意每周1次。如果你想要一些更抽象的东西,你需要阅读你的 cron 服务器文档。
  • 我将 cron 设置为在星期五 2:20 运行 20 14 * * 5 curl alt.ncsbe.gov/data/ncvhis1.zip > \ /home/user/ncvhis1_$(date "+%Y%m%d ").zip
  • 好的,确保 curl 在 cron 守护进程的路径中,确保你的目标目录存在。你可以删除那个 [\n] 我这样做只是为了避免自动换行。
  • @user3529701 尝试编辑后的答案。它对我有用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-13
  • 1970-01-01
  • 2011-05-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多