X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=handlers%2Fmysql.in;fp=handlers%2Fmysql.in;h=d3e15ab381cd3b39e09eafa5a03b77e03c4326d2;hb=9341c146cc103ab8a4d24fac699f1b88acd563ad;hp=066b87485bbba0f63ac048a5073456adc70c518e;hpb=0c71c7cd980e339a96c292252a84aa1eebfd6938;p=matthijs%2Fupstream%2Fbackupninja-vserver.git diff --git a/handlers/mysql.in b/handlers/mysql.in index 066b874..d3e15ab 100644 --- a/handlers/mysql.in +++ b/handlers/mysql.in @@ -13,6 +13,7 @@ getconf sqldump no getconf sqldumpoptions "--lock-tables --complete-insert --add-drop-table --quick --quote-names" getconf compress yes getconf vsname +getconf vsnames # authentication: getconf user @@ -25,22 +26,28 @@ getconf configfile /etc/mysql/debian.cnf # In the former case, check that $vsname exists and is running. local usevserver=no local vroot -if [ $vservers_are_available = yes ]; then - if [ -n "$vsname" ]; then - # does it exist ? - if ! vservers_exist "$vsname" ; then - fatal "The vserver given in vsname ($vsname) does not exist." - fi - # is it running ? - vservers_running $vsname || fatal "The vserver $vsname is not running." - # everything ok - info "Using vserver '$vsname'." - usevserver=yes + +if [ -n "$vsname" ]; then + if [ -z "$vsnames" ]; then + warning "Using deprecated 'vsname' configuration variable" + vsnames="$vsname" else - info "No vserver name specified, actions will be performed on the host." + warning "Ignoring (deprecated) vsname configuration variable, since vsnames is given" + fi +fi + +if [ $vservers_are_available = yes -a -n "$vsnames" ]; then + if [ "$vsnames" = all ]; then + vsnames="$found_vservers" + else + if ! vservers_exist "$vsnames" ; then + fatal "At least one of the vservers listed in vsnames ($vsnames) does not exist." + fi fi + info "Using vservers '$vsnames'" + usevserver=yes else - [ -z "$vsname" ] || warning 'vservers support disabled in backupninja.conf, vsname configuration line will be ignored' + [ -z "$vsnames" ] || warning 'vservers support disabled in backupninja.conf, vsnames configuration line will be ignored' fi ## Prepare ignore part of the command @@ -53,12 +60,18 @@ done function make_backup() { vsname="$1" - if [ -n "$vsname" ]; then - vroot="$VROOTDIR/$vsname" - vexec="$VSERVER $vsname exec" - else + if [ -z "$vsname" ]; then + info "Running on host" vroot="" vexec="" + else + if ! vservers_running "$vsname"; then + error "vserver $vsname is not running!" + return 1 + fi + info "Running on vserver $vsname" + vroot="$VROOTDIR/$vsname" + vexec="$VSERVER $vsname exec" fi interpolated=`interpolate "$backupdir" "$vsname"` @@ -282,7 +295,9 @@ EOF } if [ $usevserver = yes ]; then - make_backup "$vsname" + for vserver in $vsnames; do + make_backup "$vserver" + done else make_backup "" fi