Самое важное - определить, нужно ли вообще запускать Cron для всех сайтов. Если мультисайты используют одну и ту же базу данных, в этом нет необходимости: просто запустите ее один раз для «основного» сайта.
Если у вас несколько баз данных, вероятно, все еще плохая идея запускать cron через скрипт, который запускает его для каждого сайта, из-за настройки производительности и доступности ресурсов.
Если сотни сайтов одновременно открывают HTTP-сокеты для добавления последних твитов, что-то задохнется. Лучше всего распространить это по нашей дыре: шестьдесят сайтов, работающих под управлением 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
Если каталог вашего сайта содержит больше каталогов, чем "all, default и domainname.tld", то вы можете улучшить регулярное выражение для find (*.*
).