我有一个网页http://mydomain.com/process/2909
我想要一个 cron 任务,每天凌晨 2 点自动访问此页面。我打算让 cron 运行一个 PHP 脚本,使用 CURL 打开网站,如下所示:
$bocURL = 'http://mydomain.com/process/2909';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $bocURL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$bocFile = curl_exec($ch);
curl_close($ch);
有没有办法让我直接从 cron 命令执行此操作而不必编写 PHP 脚本?
答案1
如果您正在访问远程服务器上的脚本,该命令wget
是解决此问题的好方法。但是,如果您在实际主机“mydomain.com”上运行 cronjob,您可能只想安排 crobjob 执行位于 /process/2909 的代码。
例如,我们有一些使用 cron 执行的 PHP 作业。我们设置了一个调用“php5 /srv/cronJobs/2909.php”的 cronjob,而不是使用可能需要几分钟(并可能导致超时问题)的 HTTP 请求 - 这会调用 PHP 解释器,并且不受 HTTP 超时的影响。此外,此 PHP 进程与 Apache 是分开的,因此即使系统管理员重新启动 httpd,计划的作业也不会终止。
答案2
答案3
请注意,所选答案仅当您有兴趣直接从 URL 获取一些 html 时才有效。如果您需要在到达所需页面之前浏览一些 UI 内容,我建议在无头 X 服务器上运行 Selenium。我现在正在为一个项目这样做,它非常有效。
希望这可以帮助。
问候,
塞巴斯蒂安