+if [ "$vservers" = "yes" ]
+then
+ if [ ! -z $vsname ]
+ then
+ info "Using vserver '$vsname'"
+ usevserver=1
+ else
+ info "No vserver name specified, actions will be performed on the host"
+ fi
+fi
+
+# If needed, make sure that the specified vserver exists and is running.
+if [ $usevserver ]
+then
+ info "Examining vserver '$vsname'"
+ # does it exist ?
+ vroot="$VROOTDIR/$vsname"
+ [ -d $vroot ] || fatal "vserver '$vsname' does not exist at '$vroot'"
+ # is it running ?
+ $VSERVERINFO -q $vsname RUNNING
+ if [ $? -ne 0 ]
+ then
+ fatal "vserver $vsname is not running."
+ fi
+fi
+
+if [ "$user" == "" ]; then
+ userset=false;
+ user=root;
+else
+ userset=true;
+ if [ $usevserver ]
+ then
+ userhome=`$VSERVER $vsname exec getent passwd "$user" | awk -F: '{print $6}'`
+ if [ $? -eq 2 ]
+ then
+ fatal "User $user not found in /etc/passwd"
+ fi
+ userhome="$vroot$userhome"
+ info "User home set to: $userhome"
+ [ -f $userhome/.my.cnf ] || fatal "Can't find config file in $userhome/.my.cnf"
+ else
+ userhome=`getent passwd "$user" | awk -F: '{print $6}'`
+ if [ $? -eq 2 ]
+ then
+ fatal "User $user not found in /etc/passwd"
+ fi
+ info "User home set to: $userhome"
+ [ -f $userhome/.my.cnf ] || fatal "Can't find config file in $userhome/.my.cnf"
+ fi
+fi
+
+## Prepare ignore part of the command
+## This only works for mysqldump at the moment
+
+ignore=''
+for i in $ignores; do
+ ignore="$ignore --ignore-table=$i"
+done
+
+# create backup dirs, $vroot will be empty if no vsname was specified
+# and we will instead proceed to operate on the host
+[ -d $vroot$backupdir ] || mkdir -p $vroot$backupdir
+[ -d $vroot$backupdir ] || fatal "Backup directory '$vroot$backupdir'"