There are any number of ways to do this, but I might make a recommendation to do this with Javascript.
You could embed a script on each site at any time. Have the script check a URL on your server, it can be simply a text file with a 0 or 1, or you can put a message in there (JSON is a good protocol to use). Have the script, client side, check a URL for that variable. If it is 1, display the message, if it is 0 do not. You might even want to encode the message in that text file in case you need to display some message to all of your website users about a delay or any other information.
When you are ready to make the migration, 30 minutes prior, have the Javascript launch a notification bar at the top of the sites, notifying users that the site will be upgraded shortly.
You can get as fancy as you want with it, but in my head this is the best way to do this for a number of sites. Of course, if you have a lot of hits at any one time, that is a lot of clients checking that URL. It just depends on your particular situation. You could also do it server-side with some caching.