2011-04-26 155 views
0

我有5个站点(Drupal多站点)。我想执行一个在所有5个站点上运行cron.php的脚本。CRON JOB IN DRUPAL MULTISITE

0 0 * * * wget -O - -q -t 1 h**p://site1/cron.php 

0 0 * * * wget -O - -q -t 1 h**p://site2/cron.php 
... 

脚本如何分析域名并在shell命令中执行?

回答

0

最重要的是确定是否需要为所有站点运行Cron。如果多站点使用相同的数据库,则不需要:仅为“主”站点运行一次。

如果您有多个数据库,由于性能调整和资源可用性,运行cron通过运行它的每个站点的脚本可能仍然是一个坏主意。 如果有一百个网站全部同时打开HTTP套接字来引入最新的推文,则会有一些东西窒息。最好的办法是将这个洞遍布在我们的:60个运行cron的站点上。

这就是说,这里是一个bash脚本。保存为/etc/cron.d/drupal在Debian/Ubuntu机器:

for site in `find /path/to/drupal/sites/ -type d -name '*.*' -printf "%fname\n"`; do 
    wget -O - -q -t 1 http://$site/cron.php 
    #you could do a "sleep 60" to wait a minute before calling the next cron here. 
done 

如果您的网站目录包含多个目录,那么“所有,默认和domainname.tld”,那么你可能想提高查找(*.*)正则表达式。

+0

真的很好,我只是调整正则表达式因为我有很多forlder(隐藏,svn ...) – Mamadou 2011-04-28 08:04:18