[英]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.