Drupal 多站点中的 CRON 作业
我有 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命令中执行?
I have 5 sites (Drupal multisites). I would like to perform a script that runs cron.php on all of the 5 sites.
0 0 * * * wget -O - -q -t 1 h**p://site1/cron.php
0 0 * * * wget -O - -q -t 1 h**p://site2/cron.php
...
How can a script analyze domain name and executes in shell command?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
最重要的是确定是否需要为所有站点运行 Cron。如果多个站点使用相同的数据库,则不需要:只需为“主”站点运行一次即可。
如果您有多个数据库,那么由于性能调整和资源可用性的原因,通过为每个站点运行 cron 的脚本来运行 cron 可能仍然不是一个好主意。
如果数百个站点同时打开 HTTP 套接字来获取最新的推文,就会出现阻塞。最好的方法是将其分散到我们的漏洞中:六十个站点相继运行 cron。
也就是说,这是一个 bash 脚本。在 Debian/Ubuntu 机器上另存为
/etc/cron.d/drupal
:如果您的站点目录包含的目录多于“all、default 和 domainname.tld”,那么您可能需要改进正则表达式查找(
*.*
)。Most important is to determine if you need to run Cron at all for all sites. If multisites use the same database there is no need: just run it once for the "main" site.
If you have multiple databases, it is probably still a bad idea to run cron trough a script that runs it for every site, because of performance-tuning and resource availability.
If hundred sites all at once open HTTP sockets to pull in the latest tweets, something will choke. Best is to spread this out over the hole our: sixty sites running cron one after another.
That said, here is a bash script. save as
/etc/cron.d/drupal
on Debian/Ubuntu machines:If your sites directory contains more directories then "all, default and domainname.tld" then you might want to improve the regular expression for find (
*.*
).