[英]CRON JOB IN DRUPAL MULTISITE
我有5个站点(Drupal多站点)。 我想执行在所有5个站点上运行cron.php的脚本。
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命令中执行?
最重要的是确定所有站点是否都需要运行Cron。 如果多站点使用相同的数据库,则没有必要:只需对“主”站点运行一次。
如果您有多个数据库,则由于性能调整和资源可用性,通过cron通过一个为每个站点运行该脚本的脚本可能仍然不是一个好主意。 如果同时有数百个站点打开HTTP套接字以获取最新的推文,那么事情将变得cho塞。 最好的方法是将其传播到我们的漏洞:60个站点,一个接一个地运行cron。
就是说,这是一个bash脚本。 在Debian / Ubuntu机器上另存为/etc/cron.d/drupal
:
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
如果您的站点目录包含更多目录,则包含“ all,default和domainname.tld”,则您可能需要改进find( *.*
)的正则表达式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.