Backup do PostgreSQL WAL ShellScript

1

Eu preciso fazer um script que faça backup dos meus bancos de dados psql, eu quero usar o modo wal archive e não o pg_dump. Eu escrevi isso de um script que encontrei na web:

#!/bin/bash
#Test Script BackupSQL
PG_SQL_CMD=/opt/novell/idm/Postgres/bin/psql
PG_SQL_USER=postgres
PG_SQL_DB=password
PG_SQL_HOST=localhost

PG_BACKUP_LABEL='backup_label'

PG_BACKUP_START="$PG_SQL_CMD -U $PG_SQL_USER -h $PG_SQL_HOST -c \"select pg_start_backup('$PG_BACKUP_LABEL')\""
PG_BACKUP_STOP="$PG_SQL_CMD -U $PG_SQL_USER -h $PG_SQL_HOST -c \"select pg_stop_backup()\""


echo $PG_BACKUP_START
eval $PG_BACKUP_START
sleep 2
echo $PG_BACKUP_STOP
eval $PG_BACKUP_STOP

Meu problema é: o script me avisa sobre a senha do psql quando eu a executo. Eu não encontrei uma maneira de especificar a senha no comando psql como você pode fazer no mysql com a opção -p.

Como posso fazer o script responder ao prompt?

    
por Basa 04.01.2012 / 11:21

2 respostas

1

Tente usar o arquivo .pgpass para não precisar digitar a senha.
Consulte: link

Ou você pode usar uma sintaxe de shell como a seguinte:

 psql -h database.server.com -U username <<EOF
 sekritpassword
 EOF

Ou como opção final, você deve ser capaz de usar as variáveis ambientais PGUSER e PGPASSWD.

    
por 04.01.2012 / 12:16
0

Se você tem a seguinte linha no seu arquivo pg_hba.conf, você não precisa fornecer uma senha. Você só precisa executar este comando como usuário postgres.

local   all         all           ident
    
por 04.01.2012 / 12:21