Added escaping of double quotes that were added previously
[matthijs/upstream/backupninja.git] / handlers / mysql
index 3b82ddf99a048051e642884fc64b60129fc6a638..1bf4edb48ca75e103d6862145914f6f56b71f468 100644 (file)
@@ -24,7 +24,7 @@ getconf configfile /etc/mysql/debian.cnf
 local usevserver=no
 local vroot
 if [ $vservers_are_available = yes ]; then
-   if [ -z "$vsname" ]; then
+   if [ -n "$vsname" ]; then
       # does it exist ?
       if ! vservers_exist "$vsname" ; then
          fatal "The vserver given in vsname ($vsname) does not exist."
@@ -136,7 +136,7 @@ EOF
        fi
 fi
 
-# if a user is not set, use $confgfile, otherwise use $mycnf
+# if a user is not set, use $configfile, otherwise use $mycnf
 if [ "$user" == "" ]; then
        user=root;
        defaultsfile="--defaults-file=$configfile"
@@ -160,7 +160,7 @@ else
        
        debug "User home set to: $userhome"
        [ -f $userhome/.my.cnf ] || fatal "Can't find config file in $userhome/.my.cnf"
-       defaultsfile="--defaults-file=$vuserhome/.my.cnf"
+       defaultsfile="--defaults-file=$userhome/.my.cnf"
        debug "using $defaultsfile"
 fi
 
@@ -179,10 +179,10 @@ then
        else
                execstr="$MYSQLHOTCOPY --quiet --allowold --regexp /.\*/./.\*/ $hotdir"
        fi
-       debug "su $user -c '$execstr'"
+       debug 'su $user -c \"$execstr\"'
        if [ ! $test ]
        then
-               output=`su $user -c "$execstr" 2>&1`
+               output=`su $user -c \"$execstr\" 2>&1`
                code=$?
                if [ "$code" == "0" ]
                then
@@ -202,10 +202,10 @@ then
                else
                        execstr="$MYSQLHOTCOPY --allowold $db $hotdir"
                fi
-               debug "su $user -c '$execstr'"
+               debug 'su $user -c \"$execstr\"'
                if [ ! $test ]
                then
-                       output=`su $user -c "$execstr" 2>&1`
+                       output=`su $user -c \"$execstr\" 2>&1`
                        code=$?
                        if [ "$code" == "0" ]
                        then
@@ -230,14 +230,14 @@ then
     then
        if [ $usevserver = yes ]
        then
-           debug "echo show databases | $VSERVER $vsname exec su $user -c $MYSQL $defaultsfile | grep -v Database"
-           databases=`echo 'show databases' | $VSERVER $vsname exec su $user -c "$MYSQL $defaultsfile" | grep -v Database`
+           debug 'echo show databases | $VSERVER $vsname exec su $user -c \"$MYSQL $defaultsfile\" | grep -v Database'
+           databases=`echo 'show databases' | $VSERVER $vsname exec su $user -c \"$MYSQL $defaultsfile\" | grep -v Database`
            if [ $? -ne 0 ]
            then
                fatal "Authentication problem, maybe user/password is wrong"
            fi
        else
-               databases=`echo 'show databases' | su $user -c "$MYSQL $defaultsfile" | grep -v Database`
+               databases=`echo 'show databases' | su $user -c \"$MYSQL $defaultsfile\" | grep -v Database`
                if [ $? -ne 0 ]
                then
                    fatal "Authentication problem, maybe user/password is wrong"
@@ -253,10 +253,10 @@ fi
                else
                        execstr="$MYSQLDUMP $defaultsfile --lock-tables --complete-insert --add-drop-table --quick --quote-names $ignore $db > $dumpdir/${db}.sql"
                fi
-               debug "su $user -c '$execstr'"
+               debug 'su $user -c \"$execstr\"'
                if [ ! $test ]
                then
-                       output=`su $user -c "$execstr" 2>&1`
+                       output=`su $user -c \"$execstr\" 2>&1`
                        code=$?
                        if [ "$code" == "0" ]
                        then
@@ -277,7 +277,7 @@ fi
 fi
 
 # clean up tmp config file
-if [ "$dbusername" != "" ]
+if [ "$dbusername" != "" -a "$dbpassword" != "" ]
 then
        ## clean up tmp config file
        debug "rm $mycnf"