getconf dbhost localhost
getconf hotcopy no
getconf sqldump no
+getconf sqldumpoptions "--lock-tables --complete-insert --add-drop-table --quick --quote-names"
getconf compress yes
getconf vsname
fatal "The vserver given in vsname ($vsname) does not exist."
fi
# is it running ?
- $VSERVERINFO -q $vsname RUNNING
- if [ $? -ne 0 ]; then
- fatal "The vserver $vsname is not running."
- fi
+ vservers_running $vsname || fatal "The vserver $vsname is not running."
# everything ok
info "Using vserver '$vsname'."
usevserver=yes
else
info "No vserver name specified, actions will be performed on the host."
fi
+else
+ [ -z "$vsname" ] || warning 'vservers support disabled in backupninja.conf, vsname configuration line will be ignored'
fi
## Prepare ignore part of the command
debug "User home set to: $userhome"
[ -f $userhome/.my.cnf ] || fatal "Can't find config file in $userhome/.my.cnf"
- defaultsfile="--defaults-extra-file=$userhome/.my.cnf"
+ if [ $usevserver = yes ]; then
+ defaultsfile="--defaults-extra-file=$vuserhome/.my.cnf"
+ else
+ defaultsfile="--defaults-extra-file=$userhome/.my.cnf"
+ fi
debug "using $defaultsfile"
fi
info "dbhost: $dbhost"
execstr="$VSERVER $vsname exec $MYSQLHOTCOPY -h $dbhost --quiet --allowold --regexp /.\*/./.\*/ $hotdir"
else
- execstr="$MYSQLHOTCOPY --quiet --allowold --regexp /.\*/./.\*/ $hotdir"
+ execstr="$MYSQLHOTCOPY -h $dbhost --quiet --allowold --regexp /.\*/./.\*/ $hotdir"
fi
debug "su $user -c \"$execstr\""
if [ ! $test ]
do
if [ $usevserver = yes ]
then
- execstr="$VSERVER $vsname exec $MYSQLHOTCOPY --allowold $db $hotdir"
+ execstr="$VSERVER $vsname exec $MYSQLHOTCOPY -h $dbhost --allowold $db $hotdir"
else
- execstr="$MYSQLHOTCOPY --allowold $db $hotdir"
+ execstr="$MYSQLHOTCOPY -h $dbhost --allowold $db $hotdir"
fi
debug 'su $user -c \"$execstr\"'
if [ ! $test ]
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 "$VSERVER $vsname exec su $user -c \"$MYSQL $defaultsfile -N -B -e 'show databases'\" | sed 's/|//g;/\+----/d'"
+ databases=`$VSERVER $vsname exec su $user -c "$MYSQL $defaultsfile -N -B -e 'show databases'" | sed 's/|//g;/\+----/d'`
if [ $? -ne 0 ]
then
fatal "Authentication problem, maybe user/password is wrong or mysqld is not running?"
for db in $databases
do
- DUMP_BASE="$MYSQLDUMP $defaultsfile --lock-tables --complete-insert --add-drop-table --quick --quote-names"
+ DUMP_BASE="$MYSQLDUMP $defaultsfile $sqldumpoptions"
# Dumping structure and data
DUMP="$DUMP_BASE $ignore $db"