aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorintrigeri <intrigeri@boum.org>2005-08-09 20:59:20 +0000
committerintrigeri <intrigeri@boum.org>2005-08-09 20:59:20 +0000
commitddaceb7ddae3d4e24657d7ce1d750cfa3e4f05b3 (patch)
treed56550c6fd74cf39c1daa768ecc84b53cdea5b72
parent540f7e0f7c34b7a366a80f68ee8ea4dd32c89ecc (diff)
downloadbackupninja-ddaceb7ddae3d4e24657d7ce1d750cfa3e4f05b3.tar.gz
backupninja-ddaceb7ddae3d4e24657d7ce1d750cfa3e4f05b3.tar.bz2
Added helper for pgsql handler.
-rw-r--r--changelog7
-rw-r--r--etc/backup.d/example.pgsql17
-rw-r--r--handlers/pgsql.helper89
3 files changed, 102 insertions, 11 deletions
diff --git a/changelog b/changelog
index f2e11b1..cabe82b 100644
--- a/changelog
+++ b/changelog
@@ -1,10 +1,10 @@
version XX -- ...
- added pgsql (PostgreSQL) handler, with vservers support
+ added pgsql (PostgreSQL) handler, with vservers support.
added vservers support to duplicity handler
Note: the configuration is a bit different of rdiff
- handler's one, but the default behavior is the same: have
- a look to example.dup.
+ handler's one, but the default behavior is the same:
+ have a look to example.dup.
improved README
documented .disabled method.
corrected VROOTDIR default value.
@@ -26,6 +26,7 @@ version XX -- ...
must not be group or world writable!" error msg).
xedit action now tries $EDITOR, then /etc/alternatives/editor,
then nano, vim and vi, and aborts if none of these exists.
+ added helper for pgsql handler.
version 0.7 -- July 26 2005
added ninjahelper: a dialog based wizard for creating backupninja configs.
diff --git a/etc/backup.d/example.pgsql b/etc/backup.d/example.pgsql
index 8313bd4..d9aab42 100644
--- a/etc/backup.d/example.pgsql
+++ b/etc/backup.d/example.pgsql
@@ -1,19 +1,20 @@
### 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.
+
# backupdir = <dir> (default: /var/backups/postgres)
# where to dump the backups
-#
+
# 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.
-#
+
# compress = < yes | no > (default = yes)
-# if yes, compress the pg_dump output.
-#
-# 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.
+# if yes, compress the pg_dump/pg_dumpall output.
+
diff --git a/handlers/pgsql.helper b/handlers/pgsql.helper
new file mode 100644
index 0000000..8f9a8d4
--- /dev/null
+++ b/handlers/pgsql.helper
@@ -0,0 +1,89 @@
+HELPERS="$HELPERS pgsql:postgresql_database_backup"
+
+do_pgsql_vserver() {
+ inputBox "$pgsql_title" "Specify a vserver name:"
+ [ $? = 1 ] && return;
+ pgsql_vsname="vsname = $REPLY"
+}
+
+do_pgsql_databases() {
+ 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
+ [ $? = 1 ] && return
+
+ pgsql_databases="databases = "
+ for i in $REPLY; do
+ [ "$i" != "" ] && pgsql_databases="$pgsql_databases $i"
+ done
+}
+
+pgsql_wizard() {
+
+ # constants
+ pgsql_title="PostgreSQL action wizard"
+
+ # vserver support
+ booleanBox "$pgsql_title" "Do you want to operate on a vserver? If not, the host will be operated on."
+ [ $? = 0 ] && do_pgsql_vserver
+
+ # 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
+ 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.
+$pgsql_vsname
+
+# 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
+
+EOF
+ chmod 000 $next_filename
+
+}