Skip to content
Snippets Groups Projects
Select Git revision
  • stretch-backports
  • master default protected
  • debian protected
  • pristine-tar protected
  • upstream protected
  • backupninja.conf.d
  • when-override
  • maethor-master-patch-46063
  • maethor-master-patch-70558
  • expand_pruning_options
  • systemd_integration
  • borg-sftp-support
  • nap-initial
  • mariaback_full-intial
  • borg-ssh-keygen
  • borg-custom-init-options
  • backupninja_debian/1.2.2-1
  • backupninja_upstream/1.2.2
  • backupninja-1.2.2
  • backupninja_debian/1.2.1-1
  • backupninja_upstream/1.2.1
  • backupninja-1.2.1
  • backupninja_debian/1.2.0-1
  • backupninja_upstream/1.2.0
  • backupninja-1.2.0
  • backupninja-1.2.0-rc1
  • backupninja_debian/1.1.0-1
  • backupninja_upstream/1.1.0
  • backupninja-1.1.0
  • backupninja_debian/1.0.2-1
  • backupninja_upstream/1.0.2
  • backupninja-1.0.2
  • backupninja_debian/1.0.1-2
  • backupninja_debian/1.0.1-1
  • backupninja_upstream/1.0.1
  • backupninja-1.0.1
36 results

FAQ.md

Blame
  • mysql.helper.in 6.22 KiB
    # -*- mode: sh; sh-basic-offset: 3; indent-tabs-mode: nil; -*-
    # vim: set filetype=sh sw=3 sts=3 expandtab autoindent:
    
    HELPERS="$HELPERS mysql:mysql_database_backup"
    
    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_title" "specify a mysql user:"
       [ $? = 1 ] && return
       user=$REPLY
       inputBox "$mysql_title" "specify the mysql user's password:"
       [ $? = 1 ] && return
       password=$REPLY
       do_mysql_final "dbusername = $user\ndbpassword = $password"
    }
    
    do_mysql_debian() {
       _DISABLE_HOTCOPY=yes
       do_mysql_final "configfile = /etc/mysql/debian.cnf"
    }
    
    do_mysql_user() {
       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_title" "check options" \
             "sqldump" "create a backup using mysqldump (more compat)." off \
             "hotcopy" "create a backup using mysqlhotcopy (faster)." on \
             "compress" "compress the sql output files" on
          status=$?
          sqldump="sqldump = no"
          hotcopy="hotcopy = no"
       else
          checkBox "$mysql_title" "check options" \
             "compress" "compress the sql output files" on
          status=$?
          sqldump="sqldump = yes"
          hotcopy="hotcopy = no"
       fi
    
       [ $status = 1 ] && return;
       result="$REPLY"
       compress="compress = no"
       for opt in $result; do
          case $opt in
             'sqldump') sqldump="sqldump = yes";;
             'hotcopy') hotcopy="hotcopy = yes";;
             'compress') compress="compress = yes";;
          esac
       done
       get_next_filename $configdirectory/20.mysql
    
       cat >> $next_filename <<EOF
    ### backupninja MySQL config file ###
    
    # hotcopy = < yes | no > (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
    
    # sqldumpoptions = <options>
    # (default = --lock-tables --complete-insert --add-drop-table --quick --quote-names)
    # arguments to pass to mysqldump
    # sqldumpoptions = --add-drop-table --quick --quote-names
    
    # compress = < yes | no > (default = yes)
    # if yes, compress the sqldump output.
    $compress
    
    # dbhost      = <host> (default = localhost)
    
    EOF
       cat >> $next_filename <<EOF
    
    # backupdir = <dir> (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 = <all | db1 db2 db3 > (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 <<EOF
    #
    # vsname = <vserver> (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_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."
          status=$?
          if [ $status = 2 ]; then
             # show help.
             helptmp="/tmp/backupninja.help.$$"
             cat > $helptmp <<EOF
    To connect to mysql, backupninja must authenticate.
    There are three possible authentication methods:
    
    USER
    With this method, you specify a system user. Backupninja will
    then become this user before running mysqldump or mysqlhotcopy.
    The result is that ~/.my.cnf is used for authentication.
    
    PASSWORD
    With this method, you manually specify a mysql user and
    password in the backup action configuration.
    
    DEBIAN
    With this method, we use the debian-sys-maint user which is
    already defined in /etc/mysql/debian.cnf. If you are running
    debian, this is recommended, because no further configuration
    is needed. The drawback is that this is incompatible with
    mysqlhotcopy: you must use mysqldump.
    EOF
             dialog --textbox $helptmp 0 0
             rm $helptmp
          fi
    
          [ $status = 1 ] && return;
          result="$REPLY"
          case "$result" in
             "user") do_mysql_user;return;;
             "password") do_mysql_password;return;;
             "debian") do_mysql_debian;return;;
          esac
       done
    }