Hi Folks!
Again I need a help from you!
I have develop a shell script (seen below) to do dump and vaccum
automatically.
Once pg_dump command prompts for password, I changed the $PGDATA/*hba.conf
file
to identify Linux user which starts the shell script to avoid password
prompt.
But now I need change the $PGDATA/*hba.conf file as it was originally
and
face the password prompt again.
In shell script programming how do I can do to answer this prompt?
I have done something like this:
#> pd_dump -d zakal <<!
my_password
!
But without success!
Who can help me?
#---------------------------------------------------------------------------
--
#!/bin/sh
#
# Script de dump de banco da dados para PostgreSQL
#
# Written by: Elielson Fontanezi - 16.07.2002 #
#
# NOTA: Lembre-se sempre de verificar se o caminho
# apontado por $BKROOT exite, senão co cron não executará
#
PGHOME=/usr/local/pgsql
PGPATH=$PGHOME/bin
DUMPCMD=$PGPATH/pg_dump
VACUUMCMD=$PGPATH/vacuumdb
PGDB=$1
BKROOT=$HOME/backups
if [ ! -d ${BKROOT} ]; then
mkdir $BKROOT
if [ $? -ne 0 ]; then
ERR_VAL=$?
echo "Erro no: ${ERR_VAL} na criação de ${BKROOT}" |\
mail -s "`hostname`: *** ERRO ***" elielsonf@prodam.sp.gov.br
fi
fi
# Se o mes mudar, remova os diretorios
# do mes anterior
mes_atual=`date +%m`
for a in `find ${BKROOT} -print | grep -E "*[0-90-90-90-9]$"`
do
b=`echo ${a} | cut -d"-" -f 3`
if [ $mes_atual != $b ]; then
rm -rf ${a}
fi
done;
#
#
BKHOME=${BKROOT}/`date +%Y-%m-%d`
if [ ! -d ${BKHOME} ]; then
mkdir $BKHOME
if [ $? -ne 0 ]; then
ERR_VAL=$?
echo "Erro no: ${ERR_VAL} na criação de ${BKHOME}" |\
mail -s "`hostname`: *** ERRO ***" elielsonf@prodam.sp.gov.br
fi
fi
BKHOME=${BKHOME}/${PGDB}
if [ ! -d ${BKHOME} ]; then
mkdir $BKHOME
if [ $? -ne 0 ]; then
ERR_VAL=$?
echo "Erro no: ${ERR_VAL} na criação de ${BKHOME}" |\
mail -s "`hostname`: *** ERRO ***" elielsonf@prodam.sp.gov.br
fi
fi
LOG=${BKHOME}/${PGDB}.dumplog
ARQ=${BKHOME}/${PGDB}.ddl
###
# Parametros do pg_dump
###
# -v: verbose
# -Fp: caracter
# -Fc: pg_dump compressed format
# -Ft: tar
# -c: com drops
# -C: com DDL para criacao do banco
# -d: insercao com INSERT ou COPY sem ele
# -a: somente dados
# -s: DDL apenas
# -R: sem \connect
# -X: colocaca comando SET AUTHORIZATION COMMANDS para o usuario corrente.
###
echo "********** DDLs do banco <${PGDB}> **********" > ${LOG}
PARAM="-U ${USER} -Fp -v -s -c -X use-set-session-authorization"
${DUMPCMD} ${PARAM} ${PGDB} -f ${ARQ} >> ${LOG} 2>&1
if [ $? -ne 0 ]; then
ERR_VAL=$?
echo "*** Erro no: ${ERR_VAL}" >> ${LOG}
echo "*** Comando: ${DUMPCMD} ${PARAM} ${PGDB} -f ${ARQ} >> ${LOG} 2>&1"
>> ${LOG}
cat ${LOG} | \
mail -s "`hostname`: Erro no deump DLL do banco ${PGDB}"
elielsonf@prodam.sp.gov.br
fi
ARQ=${BKHOME}/${PGDB}.data
echo "********** ascii do banco <${PGDB}> **********" >> ${LOG}
PARAM="-U ${USER} -Fp -a -v -X use-set-session-authorization"
${DUMPCMD} ${PARAM} ${PGDB} -f ${ARQ} >> ${LOG} 2>&1
if [ $? -ne 0 ]; then
ERR_VAL=$?
echo "*** Erro no: ${ERR_VAL}" >> ${LOG}
echo "*** Comando: ${DUMPCMD} ${PARAM} ${PGDB} -f ${ARQ} >> ${LOG} 2>&1"
>> ${LOG}
cat ${LOG} |\
mail -s "`hostname`: Erro no dump ASCII do banco ${PGDB}"
elielsonf@prodam.sp.gov.br
fi
ARQ=${BKHOME}/${PGDB}.tar
echo "********** tar do banco <${PGDB}> **********" >> ${LOG}
PARAM="-U ${USER} -Ft -v -X use-set-session-authorization"
${DUMPCMD} ${PARAM} ${PGDB} -f ${ARQ} >> ${LOG} 2>&1
if [ $? -ne 0 ]; then
ERR_VAL=$?
echo "*** Erro no: ${ERR_VAL}" >> ${LOG}
echo "*** Comando: ${DUMPCMD} ${PARAM} ${PGDB} -f ${ARQ} >> ${LOG} 2>&1"
>> ${LOG}
cat ${LOG} |\
mail -s "`hostname`: Erro no dump tar do banco ${PGDB}"
elielsonf@prodam.sp.gov.br
fi
###
# Parametro de vaccum
###
# -d: dbname
# -z: Calculate statistics for use by the optimizer.
# -f: Perform "full" vacuuming
# -v: verbose
###
echo "********** vacuum de <${PGDB}> **********" >> ${LOG}
PARAM="-U ${USER} -z -v -f"
${VACUUMCMD} ${PARAM} -d ${PGDB} > ${LOG} 2>&1
if [ $? -ne 0 ]; then
ERR_VAL=$?
echo "*** Erro no: ${ERR_VAL}" >> ${LOG}
echo "ERRO: vacuumdb ${VACUUMCMD} ${PARAM} -d ${PGDB} > ${LOG} 2>&1" >>
${LOG}
cat ${LOG} |\
mail -s "`hostname`: Erro no vacuum do banco ${PGDB}"
elielsonf@prodam.sp.gov.br
fi
..............................................
A Question...
Since before your sun burned hot in space
and before your race was born,
I have awaited a question.
Elielson Fontanezi
DBA Technical Support - PRODAM
Parque do Ibirapuera s/n - SP - BRAZIL
+55 11 5080 9493