I use the following symbolic links structure on our servers and wrote a bash script for handling Drupal updates years ago.
Within this structure and this drush command, it is now possible to do that via drush.
Here is the very specific structure this command deals with for multi-drupalupdate and multi-create:
drupal/
|-- 6.x -> drupal-6.14
|-- 6.x_backup
|-- 6.x_profiles
|-- 6.x_sites
| |-- all
| |-- default
| |-- example.com
| | |-- files
| | |-- modules
| | `-- themes
| `-- sub.example.com
| |-- files
| |-- modules
| `-- themes
`-- drupal-6.14
|-- includes
|-- misc
|-- modules
|-- profiles -> ../6.x_profiles
|-- scripts
`-- sites -> ../6.x_sites
Commands
- drush multi-drupalupdate
- Updates the installation if there is a new minor release available and preserves all detected symlinks, like sites and profiles above
- drush multi-create
- Creates a Drupal multisite installation, supports usage of drush_make makefiles
- drush multi-site
- Creates a site within the installation
- drush multi-status
- An extended drush core status
- drush multi-exec
- Removed: Execute a drush command on all sites (batch mode)
@see #652778: Similar functionality is in drush core 3.x
- drush multi-sql-dump
- An extended sql dump
- drush multi-nagios
- Moved and will be removed soon: Command for use as nagios plugin to monitor Drupal sites and Drupal installations with exit status and status message.
You can find the isolatated nagios functionality at Drush Nagios (drush_nagios).