pg_dump command inside shell scripts

Поиск
Список
Период
Сортировка
От Elielson Fontanezi
Тема pg_dump command inside shell scripts
Дата
Msg-id A799F7647794D311924A005004ACEA9708A246A4@cprodamibs249.prodam
обсуждение исходный текст
Ответы Re: pg_dump command inside shell scripts  (Richard Huxton <dev@archonet.com>)
Re: [ADMIN] pg_dump command inside shell scripts  ("David F. Skoll" <dfs@roaringpenguin.com>)
Список pgsql-general
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

В списке pgsql-general по дате отправления:

Предыдущее
От: "Erwan DUROSELLE"
Дата:
Сообщение: Rép. : Re: Hot Backup
Следующее
От: Tom Lane
Дата:
Сообщение: Re: PLTCL return_null crash...