+

Add -D parameter and retreive master user in recovery.conf file

Benjamin Renard [2017-08-25 13:12:05]
Add -D parameter and retreive master user in recovery.conf file
Filename
check_pg_streaming_replication
diff --git a/check_pg_streaming_replication b/check_pg_streaming_replication
index 78e1a8e..03f9d41 100755
--- a/check_pg_streaming_replication
+++ b/check_pg_streaming_replication
@@ -26,6 +26,7 @@ fi
 RECOVERY_CONF_FILENAME=recovery.conf
 RECOVERY_CONF=""
 PG_DEFAULT_PORT=5432
+PG_DB=template0

 DEBUG=0

@@ -39,13 +40,14 @@ Usage : $0 [-d] [-h] [options]
 	-r recovery_conf	Specify Postgres recovery configuration file path
 				(Default : $PG_MAIN/$RECOVERY_CONF_FILENAME)
 	-p pg_port		Specify default Postgres master TCP port (Default : $PG_DEFAULT_PORT)
+	-D dbname		Specify DB name on Postgres master to connect on (Default : $PG_DB)
 	-d			Debug mode
 	-h 			Show this message
 EOF
 	exit 0
 }

-while getopts "hu:b:m:r:p:d" OPTION
+while getopts "hu:b:m:r:p:D:d" OPTION
 do
 	case $OPTION in
 		u)
@@ -63,6 +65,9 @@ do
 		p)
 			PG_DEFAULT_PORT=$OPTARG
 		;;
+		D)
+			PG_DB=$OPTARG
+		;;
 		d)
 			DEBUG=1
 		;;
@@ -170,9 +175,18 @@ then
 	else
 		debug "Master port : $M_PORT"
 	fi
+
+	M_USER=$( echo "$MASTER_CONN_INFOS"|sed 's/^.*user= *\([^ ]*\) *.*$/\1/' )
+	if [ ! -n "$M_USER" ]
+	then
+		debug "Master user not specify, use default : $PG_USER"
+		M_USER=$PG_USER
+	else
+		debug "Master user : $M_USER"
+	fi

 	# Get current xlog file from master
-	M_CUR_XLOG="$( echo 'SELECT pg_current_xlog_location()'|su - $PG_USER -c "$PSQL_BIN -h $M_HOST -p $M_PORT -t -P format=unaligned" )"
+	M_CUR_XLOG="$( echo 'SELECT pg_current_xlog_location()'|su - $PG_USER -c "$PSQL_BIN -U $M_USER -h $M_HOST -p $M_PORT -d $PG_DB -t -P format=unaligned" )"
 	if [ ! -n "$M_CUR_XLOG" ]
 	then
 		echo "UNKNOWN : Can't retreive current xlog from master server"
ViewGit