From 697aafe6b441d26eba9a63ff43ec777d704ad435 Mon Sep 17 00:00:00 2001
From: Patrick Ditzel <patrick@central-computer.de>
Date: Mon, 18 Dec 2017 12:46:52 +0000
Subject: [PATCH] Split postgres into postgres-local an d postgres remote. Get mariadb to run. Modified the finding of configurationfiles ind dbb.

---
 dbb-modules/postgresql |   69 +++-------------------------------
 1 files changed, 7 insertions(+), 62 deletions(-)

diff --git a/dbb-modules/postgresql b/dbb-modules/postgresql
index f50c10a..502567c 100644
--- a/dbb-modules/postgresql
+++ b/dbb-modules/postgresql
@@ -6,10 +6,6 @@
 	if [ ! -e /usr/bin/pg_dump ]; then
 		debug "It seems that you dont have psql installed. You may have problems to backup remote databases"
 	fi
-	numberRegex='^[0-9]+$'
-	if ! [[ $(id -u postgres 2>&1) =~ $numberRegex ]] ; then
-		debug "It seems that you dont have the user postgres on your computer. You may have problems to backup local postgres databases"
-	fi
 	if [ -r ~/.pgpass ]; then
 		debug "function check-postgresql-deps: ~/.pgpass exists, doing reomte backup."
 	else
@@ -18,55 +14,6 @@
 	fi
 }
 
-# PostgreSQL local
-
-function pg_local_all {
-	# Debugoutput id DEBUG is enabled
-	debug "Dump all from Postgres local"
-	# Dump all databases in one file as user postgres (Debian)
-	sudo -H -i -u postgres pg_dumpall > "$TMP_DIR"/local_dumpall.pgsql
-	debug "Diff alldumps from Postgres local"
-	# Check if there are differences between the actual dump and the last dump
-	backup_file_handler "$TMP_DIR $BACKUP_DIR" local_dumpall.pgsql
-}
-
-function pg_local_single {
-	# Get a list with all databases on localhost. Do it as user postgres (Debian)
-	# parallelize the following
-	for DB in $(sudo -H -i -u postgres /usr/bin/psql -At -c "SELECT datname FROM pg_database WHERE NOT datistemplate AND datallowconn ORDER BY datname;" postgres)
-		do
-			debug "Dumping local database $DB"
-			# Dump each database in a single file
-			sudo -H -i -u postgres /usr/bin/pg_dump -Fp "$DB" > "$TMP_DIR"/local_"$DB".pgsql
-			backup_file_handler "$TMP_DIR" "$BACKUP_DIR" local_"$DB".pgsql
-			echo ""
-		done
-}
-
-# Do the local backupjobs
-
-function run_local_pg_backups {
-	# Test if the current backupuser has access via sudo to postgres
-	# This part has to be improved!
-	sudo -l -U "$BACKUPUSER" | grep postgres
-	if [ $? -eq 0 ];then
-		# If the user has access vi sudo to postgres and a full dump is configured, do it.
-		if [ "$POSTGRES_BACKUP_LOCAL_DUMP_ALL" == "TRUE" ]; then
-			pg_local_all
-		fi
-		# If the user has access vi sudo to postgres and dumps for each database is configured , do it.
-		if [ "$POSTGRES_BACKUP_LOCAL_SINGLE" == "TRUE" ]; then
-			pg_local_single
-		fi
-	else
-		# If the user is not permitted to acces the postgresdatabases vi sudo throw an errormessage
-		echo "" | $LOGGER
-		echo "The backupuser does not the permission to act as user postgres" | $LOGGER
-		echo "Please add the following line to your /etc/sudoers:" | $LOGGER
-		echo "backupuser ALL=(postgres) NOPASSWD:/usr/bin/psql,/usr/bin/pg_dump,/usr/bin/pg_dumpall" | $LOGGER
-		echo "" | $LOGGER
-	fi
-}
 
 ################################################################################
 
@@ -96,8 +43,8 @@
 		# I don't know if the following statement really effect to pg_dump :-(
 		export PGSSLMODE=require
 		# Dump the databases which are defined in the params
-		/usr/bin/pg_dump -U "$TRGTBDUSER" -h "$TRGTHOST" -p "$TRGTPORT" "$TRGTDB" > "$TMP_DIR"/"$TRGTHOST"-"$TRGTDB".pgql
-		backup_file_handler "$TMP_DIR" "$BACKUP_DIR" "$TRGTHOST"-"$TRGTDB".pgql
+		/usr/bin/pg_dump -U "$TRGTBDUSER" -h "$TRGTHOST" -p "$TRGTPORT" "$TRGTDB" > "$TMP_DIR"/"$TRGTHOST"_"$TRGTDB".pgql
+		backup_file_handler "$TMP_DIR" "$BACKUP_DIR" "$TRGTHOST"_"$TRGTDB".pgql
 	else
 		# If no encrypted connection to the postgres-server can be established throw an errormessage
 		echo "" | $LOGGER
@@ -118,10 +65,11 @@
 				# For each entry do the backup
 				debug "run dump with params $LINE"
 				# CAUTION: No doublequotes in the following line. The var $LINE has to be splittet!
-	        dump_remote_pgdb $LINE
-			# To get the params for the function the .pgpass-file is striped from the comments,
-			# the ":" are replaces against whitespaces and only the first four coloums are used
-			# so we give "host port database user" to the function
+				# DO NOT DOUBLEQUOTE $LINE 
+	        		dump_remote_pgdb $LINE
+				# To get the params for the function the .pgpass-file is striped from the comments,
+				# the ":" are replaces against whitespaces and only the first four coloums are used
+				# so we give "host port database user" to the function
 			done <<< "$(cat ~/.pgpass | grep -v '#' | tr ":" " " | cut -d " " -f1,2,3,4)"
 		else
 			# If the ~/.pgpass-file is missig, throw an errormessage
@@ -135,9 +83,6 @@
 }
 
 function postgresql-main {
-	if [ "$POSTGRES_BACKUP_LOCAL" = "TRUE" ]; then
-		run_local_pg_backups
-	fi
 	if [ "$POSTGRES_BACKUP_REMOTE" = "TRUE" ]; then
 		run_remote_pg_backups
 	fi

--
Gitblit v1.10.0