mirror of
https://0xacab.org/liberate/backupninja.git
synced 2024-11-10 04:42:31 +01:00
78884142e7
The modelines added match the emacs lines already present and also set the filetype to sh (just like the emacs lines).
109 lines
3.2 KiB
Bash
109 lines
3.2 KiB
Bash
# -*- 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
|
|
|
|
# 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
|
|
|
|
### You can also set the following variables in backupninja.conf:
|
|
# 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
|
|
|
|
}
|