从一个cron作业执行/运行多个php cron脚本

时间:2011-08-30 22:48:20

标签: php shell include cron exec

我正在尝试将PHP文件设置为cron作业,其中该PHP文件包含/执行/运行其他PHP文件。我试图实现这一点,因为我的主机只允许托管所有域的5个cron作业,所以我正在尝试将任务编译到某些cron作业中。

我通过cron作业运行的文件位于

/home/XXXXX/data/cron/tasks/run.php

-

包含文件位于

/home/XXXXX/domains/domain.co.uk/html/cms/apps/scripts/twitter.php  
/home/XXXXX/domains/domain.com/html/generator/runcrawl.php 
/home/XXXXX/domains/domain.net/html/cms/apps/scripts/sitemap.php

-

如何从run.php中包含该配置文件?我已经尝试过include_once('/home/XXXXX/domains/domain.co.uk/html/cms/apps/scripts/twitter.php ');,但却返回了错误。

我也尝试在run.php中使用以下内容添加,但没有运气!

exec('php /home/XXXXX/domains/domain.co.uk/html/cms/apps/scripts/twitter.php');
exec('php /home/XXXXX/domains/domain.com/html/generator/runcrawl.php');
exec('php /home/XXXXX/domains/domain.net/html/cms/apps/scripts/sitemap.php');

-

通过控制面板设置的cron作业如下,我知道这是正确的

php /home/XXXXXX/data/cron/tasks/run.php 

我不确定这是否可以通过shell脚本轻松完成?有什么想法吗?

2 个答案:

答案 0 :(得分:0)

您的有限主机不太可能允许您跨域文件夹,因为它可能是一个安全问题。 如果你不能跨目录访问文件,那么考虑使用php的cURL获取初始cron作业来调用其他文件。 这种方法的缺点是文件必须位于公共html目录中。

http://www.php.net/manual/en/ref.curl.php

答案 1 :(得分:0)

尝试创建shell脚本。打开文本编辑器并执行以下操作:

#!/bin/bash

wget -q /home/XXXXX/domains/domain.co.uk/html/cms/apps/scripts/twitter.php

sleep 5

wget -q /home/XXXXX/domains/domain.com/html/generator/runcrawl.php 

sleep 5

wget -q /home/XXXXX/domains/domain.com/html/generator/runcrawl.php 

这将在安静模式下使用wget command执行php脚本。并且将在脚本之间添加5秒的暂停。

将其保存为any_name.sh并将其上传到您的服务器,请记住为所有文件授予执行权限并将其添加到您的cron作业中。