But what if you are lazy to fire up the text editor each time you want to put your website into maintenance mode?
I put this code in my configuration array:
'catchAllRequest'=>file_exists(dirname(__FILE__).'/.maintenance') ? array('site/maintenance') : null,
Simply creating an empty '.maintenance' file in config folder will keep your visitors informed until you finishes all administrative tasks.
I'm confident this won't cause significant overhead to your filesystem if you don't have really huge traffic.