From aefed90a3b7d8323a3a094e161f0b54544487297 Mon Sep 17 00:00:00 2001 From: Micah Anderson Date: Tue, 27 Dec 2005 22:15:40 +0000 Subject: r242@um: micah | 2005-12-27 17:06:10 -0500 vserver support added, database and dump directory selection added --- handlers/mysql.helper | 132 +++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 114 insertions(+), 18 deletions(-) (limited to 'handlers') diff --git a/handlers/mysql.helper b/handlers/mysql.helper index b7efe99..87de311 100644 --- a/handlers/mysql.helper +++ b/handlers/mysql.helper @@ -1,16 +1,39 @@ HELPERS="$HELPERS mysql:mysql_database_backup" -do_mysql_user() { - inputBox "mysql action wizard" "specify a system user:" - [ $? = 1 ] && return - do_mysql_final "user = $REPLY" +do_mysql_vserver() { + choose_one_vserver "$mysql_title" + [ $? = 0 ] || return 1 + mysql_vsname="vsname = $REPLY" +} + +do_mysql_databases() { + REPLY= + while [ -z "$REPLY" ]; do + formBegin "$mysql_title: databases" + formItem "Database:" + formItem "Database:" + formItem "Database:" + formItem "Database:" + formItem "Database:" + formItem "Database:" + formItem "Database:" + formItem "Database:" + formItem "Database:" + formItem "Database:" + formDisplay + [ $? = 0 ] || return 1 + mysql_databases="databases = " + for i in $REPLY; do + [ -n "$i" ] && mysql_databases="$mysql_databases $i" + done + done } do_mysql_password() { - inputBox "mysql action wizard" "specify a mysql user:" + inputBox "$mysql_title" "specify a mysql user:" [ $? = 1 ] && return user=$REPLY - inputBox "mysql action wizard" "specify the mysql user's password:" + inputBox "$mysql_title" "specify the mysql user's password:" [ $? = 1 ] && return password=$REPLY do_mysql_final "dbusername = $user\ndbpassword = $password" @@ -22,14 +45,14 @@ do_mysql_debian() { } do_mysql_user() { - inputBox "mysql action wizard" "what system user does mysql backup use?" + inputBox "$mysql_title" "what system user does mysql backup use?" [ $? = 1 ] && return do_mysql_final "user = $REPLY" } do_mysql_final() { if [ -z "$_DISABLE_HOTCOPY" ]; then - checkBox "mysql action wizard" "check options" \ + checkBox "$mysql_title" "check options" \ "sqldump" "create a backup using mysqldump (more compat)." no \ "hotcopy" "create a backup using mysqlhotcopy (faster)." yes \ "compress" "compress the sql output files" yes @@ -37,7 +60,7 @@ do_mysql_final() { sqldump="sqldump = no" hotcopy="hotcopy = no" else - checkBox "mysql action wizard" "check options" \ + checkBox "$mysql_title" "check options" \ "compress" "compress the sql output files" yes status=$? sqldump="sqldump = yes" @@ -55,22 +78,96 @@ do_mysql_final() { esac done get_next_filename $configdirectory/20.mysql - echo -e $@ > $next_filename + cat >> $next_filename < (default = no) +# make a backup of the actual database binary files using mysqlhotcopy. $hotcopy + +# sqldump = < yes | no > (default = no) +# make a backup using mysqldump. this creates text files with sql commands +# sufficient to recontruct the database. +# +$sqldump + +# compress = < yes | no > (default = yes) +# if yes, compress the sqldump output. $compress -# databases = all -# backupdir = /var/backups/mysql -# dbhost = localhost + +# dbhost = (default = localhost) + +EOF + cat >> $next_filename < (default: /var/backups/mysql) +# where to dump the backups. hotcopy backups will be in a subdirectory +# 'hotcopy' and sqldump backups will be in a subdirectory 'sqldump' +$mysql_backupdir + +# databases = (default = all) +# which databases to backup. should either be the word 'all' or a +# space separated list of database names. +$mysql_databases + +EOF + +if [ $host_or_vservers == vservers ] + then + cat >> $next_filename < (no default) +# vsname indicates which vserver to operate on, this is only used if +# vserver is set to yes in /etc/backupninja.conf +# NOTE: if you do not specify a vsname the host will be operated on +# alsoNOTE: if operating on a vserver, $VROOTDIR will be +# prepended to backupdir. EOF + echo -e "$mysql_vsname\n" >> $next_filename +fi + + echo -e $@ >> $next_filename + chmod 600 $next_filename } mysql_wizard() { + + # Global variables + mysql_title="MySQL action wizard" + + # backup the host system or a Vserver? + choose_host_or_one_vserver "$mysql_title" + [ $? = 0 ] || return 1 + if [ $host_or_vservers == vservers ] + then + do_mysql_vserver + [ $? = 0 ] || return 1 + fi + + # backupdir + if [ $host_or_vservers == vservers ] + then + inputBox "$mysql_title" "Directory where to store the backups:`echo \"\n(Relative to chosen vserver's root directory)\"`" "/var/backups/mysql" + else + inputBox "$mysql_title" "Directory where to store the backups" "/var/backups/mysql" + fi + [ $? = 1 ] && return + mysql_backupdir="backupdir = $REPLY" + + # databases + booleanBox "$mysql_title" "Do you want to backup all of the databases? `echo \"\n\nIf not, you'll be offered to choose individual databases to backup.\"`" + if [ $? = 0 ]; then + mysql_databases="databases = all" + else + do_mysql_databases + [ $? = 0 ] || return 1 + fi + while true; do _DISABLE_HOTCOPY= - menuBoxHelpFile "mysql action wizard" "choose a mysql authentication method:" \ + menuBoxHelpFile "$mysql_title" "choose a mysql authentication method:" \ user "change to a linux user first." \ password "manually specify mysql user and password." \ debian "use default mysql user debian-sys-maint." @@ -109,6 +206,5 @@ EOF "password") do_mysql_password;return;; "debian") do_mysql_debian;return;; esac - done -} - + done +} \ No newline at end of file -- cgit v1.2.3