r216@um: micah | 2005-12-27 09:50:17 -0500
[matthijs/upstream/backupninja-vserver.git] / handlers / mysql
index 49f80a8545816fedb760fe1d148745f5bc8526eb..b6a2f2ab9c83b1c4af01256f4ddfc5a1d5b3f49d 100644 (file)
@@ -52,8 +52,25 @@ if [ "$user" == "" ]; then
        user=root;
 else
        userset=true;
-       userhome=`getent passwd "$user" | awk -F: '{print $6}'`
-       [ -f $userhome/.my.cnf ] || fatal "Can't find config file in $userhome/.my.cnf"
+       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
@@ -64,8 +81,8 @@ for i in $ignores; do
        ignore="$ignore --ignore-table=$i"
 done
        
-# create backup dirs, vroot variable will be empty if no vsname was specified
-# and will proceed to operate on the host
+# 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'"
 hotdir="$backupdir/hotcopy"
@@ -103,8 +120,11 @@ then
     if [ $usevserver ]
     then
        home=`$VSERVER $vsname exec getent passwd "root" | awk -F: '{print $6}'`
+       home="$vroot$home"
+       info "Home set to: $home"
     else
        home=`getent passwd "root" | awk -F: '{print $6}'`
+       info "Home set to: $home"
     fi
     [ -d $home ] || fatal "Can't find root's home directory ($home)."
     mycnf="$home/.my.cnf"
@@ -134,7 +154,7 @@ EOF
        umask $oldmask
        defaultsfile="--defaults-file=$mycnf"
 elif [ "$userset" == "false" ]; then
-       # if user is set, don't use $configfile
+       # if user is set, don't use $mycnf
        defaultsfile="--defaults-file=$configfile"
 fi