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

This commit is contained in:
Benjamin Renard 2017-08-25 15:12:05 +02:00
parent 6892005c4d
commit 22bbb4223b

View file

@ -26,6 +26,7 @@ fi
RECOVERY_CONF_FILENAME=recovery.conf RECOVERY_CONF_FILENAME=recovery.conf
RECOVERY_CONF="" RECOVERY_CONF=""
PG_DEFAULT_PORT=5432 PG_DEFAULT_PORT=5432
PG_DB=template0
DEBUG=0 DEBUG=0
@ -39,13 +40,14 @@ Usage : $0 [-d] [-h] [options]
-r recovery_conf Specify Postgres recovery configuration file path -r recovery_conf Specify Postgres recovery configuration file path
(Default : $PG_MAIN/$RECOVERY_CONF_FILENAME) (Default : $PG_MAIN/$RECOVERY_CONF_FILENAME)
-p pg_port Specify default Postgres master TCP port (Default : $PG_DEFAULT_PORT) -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 -d Debug mode
-h Show this message -h Show this message
EOF EOF
exit 0 exit 0
} }
while getopts "hu:b:m:r:p:d" OPTION while getopts "hu:b:m:r:p:D:d" OPTION
do do
case $OPTION in case $OPTION in
u) u)
@ -63,6 +65,9 @@ do
p) p)
PG_DEFAULT_PORT=$OPTARG PG_DEFAULT_PORT=$OPTARG
;; ;;
D)
PG_DB=$OPTARG
;;
d) d)
DEBUG=1 DEBUG=1
;; ;;
@ -170,9 +175,18 @@ then
else else
debug "Master port : $M_PORT" debug "Master port : $M_PORT"
fi 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 # 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" ] if [ ! -n "$M_CUR_XLOG" ]
then then
echo "UNKNOWN : Can't retreive current xlog from master server" echo "UNKNOWN : Can't retreive current xlog from master server"