2011-04-26 78 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