I have a drush alias file for all my sites (some multisite, some single site, see http://drupal.org/node/670460). I then use "drush alias updatedb" for all sites in a multisite installation to make sure that all databases are updated.
(of course, I have a development multisite installation as well, so that I can test the updates first).
"drush site-alias" gives you a list of all your aliases, so in principle, you could create script like this:
#!/bin/bash for site in `/usr/local/drush/drush site-alias` do drush update drush updatedb done (I repeat the drush update for all sites, in case some of the modules are not used by all sites)
However, that would update all your databases. Since I update develop first, I actually have two update scripts:
#!/bin/bash for site in "firstdev" "seconddev" "thirddev" "forthdev" do echo "running updates for ${site}" /usr/local/drush/drush @${site} up /usr/local/drush/drush @${site} updatedb /usr/local/drush/drush @${site} cc all done
(and then of course a second one for the production sites)
Hope this helps,
Ursula
On Wed, Apr 17, 2013 at 8:13 AM, John Summerfield summer@js.id.au wrote:
On 17/04/13 20:33, Kenneth Jacker wrote:
Not sure what you mean here ...
Use 'find' and the shell to do what?
Sorry if I'm being dumb/dense,
[root@TestServer ~]# find /var/www/sites -name settings.php /var/www/sites/testserver/sites/default/settings.php [root@TestServer ~]#
The settings.php directories show which sites' databased need to be updated. I don't have multiple sites set up so it's hard to demonstrate.
To work back a little, [root@TestServer ~]# find /var/www/sites -name settings.php -exec dirname {} ; /var/www/sites/testserver/sites/default [root@TestServer ~]# When I set up multisites under D6, there were directories beside /var/www/sites/testserver/sites/default that reflected the domain names of the sites .
I think that still works, but now there is also sites.php. If you can code in PHP (I can't really), then you can read that in PHP and work on the $sites array.
This demonstrates making some sense of the sites.php from the commandline: [root@TestServer ~]# cat /var/www/sites/testserver/sites/example.sites.php | awk '/$sites[/ {if ($2 ~ ".sites") { printf "%s\t%s\t%s\t%s\n", $1, $2, $3,$4}}'
$sites['dev.drupal.org'] = 'example.com';$sites['localhost.example'] = 'example.com';$sites['8080.localhost.example'] = 'example.com';$sites['8080.www.drupal.org.mysite.test'] ='example.com'; [root@TestServer ~]#
Note that in reality you would have "if ($1" etc, I used 2 here to test the second word to show the kind of output you should expect.
-- [ Drupal support list | http://lists.drupal.org/ ]