pg_dump command inside shell scripts - Mailing list pgsql-general
From | Elielson Fontanezi |
---|---|
Subject | pg_dump command inside shell scripts |
Date | |
Msg-id | A799F7647794D311924A005004ACEA9708A246A4@cprodamibs249.prodam Whole thread Raw |
Responses |
Re: pg_dump command inside shell scripts
Re: [ADMIN] pg_dump command inside shell scripts |
List | 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 by date: