Skip to content
Snippets Groups Projects
Select Git revision
  • ec761ef8faf3acab94e22b05f25017aa69908d7b
  • dev default
  • master
  • recfiles
  • run
  • 0.9
6 results

layout.sty

Blame
  • pgsql.helper.in 4.67 KiB
    # -*- mode: sh; sh-basic-offset: 3; indent-tabs-mode: nil; -*-
    # vim: set filetype=sh sw=3 sts=3 expandtab autoindent:
    
    HELPERS="$HELPERS pgsql:postgresql_database_backup"
    
    do_pgsql_vserver() {
       choose_one_vserver "$pgsql_title"
       [ $? = 0 ] || return 1
       pgsql_vsname="vsname = $REPLY"
    }
    
    do_pgsql_databases() {
       REPLY=
       while [ -z "$REPLY" ]; do
          formBegin "$pgsql_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
          pgsql_databases="databases = "
          for i in $REPLY; do
             [ -n "$i" ] && pgsql_databases="$pgsql_databases $i"
          done
       done
    }
    
    pgsql_wizard() {
    
        # constants
       pgsql_title="PostgreSQL action wizard"
    
       # backup the host system or a Vserver?
       choose_host_or_one_vserver "$pgsql_title"
       [ $? = 0 ] || return 1
       if [ $host_or_vservers == vservers ]; then
          do_pgsql_vserver
          [ $? = 0 ] || return 1
       fi
    
       # backupdir
       inputBox "$pgsql_title" "Directory where to store the backups:`[ -z \"$pgsql_vsname\" ] || echo \"\n(In respect to chosen vserver's root directory)\"`" "/var/backups/postgres"
       [ $? = 1 ] && return
       pgsql_backupdir="backupdir = $REPLY"
    
       # databases
       booleanBox "$pgsql_title" "Do you want to backup the whole cluster? If not, you'll be offered to choose the databases to backup."
       if [ $? = 0 ]; then
          pgsql_databases="databases = all"
       else
          do_pgsql_databases
          [ $? = 0 ] || return 1
       fi
    
       # compress
       booleanBox "$pgsql_title" "Do you want to compress the backups?"
       if [ $? = 0 ]; then
          pgsql_compress="compress = yes"
       else
          pgsql_compress="compress = no"
       fi
    
       # pg_dump format, defaults to plain, custom is recommended by PostgreSQL
       menuBox "$pgsql_title" "Choose a pg_dump format:" \
          plain "Default plain-text sql script, use with psql." \
          tar "More flexible than the plain, use with pg_restore." \
          custom "The most flexible format, use with pg_restore."
       if [ $? = 0 ]; then
          result="$REPLY"
          case "$result" in
             "tar") pgsql_format="format = tar";;
             "custom") pgsql_format="format = custom";;
             *) pgsql_format = "format = plain";;
          esac
       fi
             
    
       # write config file
       get_next_filename $configdirectory/20.pgsql
       cat >> $next_filename <<EOF
    ### backupninja PostgreSQL config file ###
    
    # vsname = <vserver> (no default)
    # what vserver to operate on, only used if vserver = yes in /etc/backupninja.conf
    # if you do not specify a vsname the host will be operated on
    # Note: if operating on a vserver, $VROOTDIR will be prepended to backupdir.
    EOF
       if [ $host_or_vservers == vservers ]; then
          echo -e "$pgsql_vsname\n" >> $next_filename
       fi
    
       cat >> $next_filename <<EOF
    # backupdir = <dir> (default: /var/backups/postgres)
    # where to dump the backups
    $pgsql_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.
    # Note: when using 'all', pg_dumpall is used instead of pg_dump, which means
    # that cluster-wide data (such as users and groups) are saved.
    $pgsql_databases
    
    # compress = < yes | no > (default = yes)
    # if yes, compress the pg_dump/pg_dumpall output.
    $pgsql_compress
    
    # format = < plain | tar | custom > (default = plain)
    # plain -  Output a plain-text SQL script file with the extension .sql.
    #          When dumping all databases, a single file is created via pg_dumpall.
    # tar -    Output a tar archive suitable for input into pg_restore. More 
    #          flexible than plain and can be manipulated by standard Unix tools 
    #          such as tar. Creates a globals.sql file and an archive per database.
    # custom - Output a custom PostgreSQL pg_restore archive. This is the most
    #          flexible format allowing selective import and reordering of database
    #          objects at the time the database is restored via pg_restore. This
    #          option creates a globals.sql file containing the cluster role and
    #          other information dumped by pg_dumpall -g and a pg_restore file
    #          per selected database. See the pg_dump and pg_restore man pages.
    $pgsql_format
    
    ### You can also set the following variables in backupninja.conf:
    # PSQL: psql path (default: /usr/bin/psql)
    # PGSQLDUMP: pg_dump path (default: /usr/bin/pg_dump)
    # PGSQLDUMPALL: pg_dumpall path (default: /usr/bin/pg_dumpall)
    # PGSQLUSER: user running PostgreSQL (default: postgres)
    
    EOF
       chmod 600 $next_filename
    
    }