Backup Postgresql sem digitar senha pgpass file

Vamos mostrar como fazer backp do postgresql usando pg_dump sem precisar digitar a senha. 

Partindo do princípio que não estamos na mesma máquina do servidor postgresql, precisamos instalar o postgres client:

  sudo apt-get install postgresql-client

Como estamos logado como root, vamos criar um arquivo .pgpass na pasta /root

O conteúdo do arquivo de ser

*:*:*:*:senha_do_banco

A documentação diz podemos colocar nesse arquivo várias outras informações como host, usuário, porta e etc... Nessa ordem:

  hostname:port:database:username:password

Mas quando testamos com todas essas informações deu esse erro:

  pg_dump: [arquivador (bd)] conexão com banco de dados "nome_do_banco" falhou: fe_sendauth: no password supplied

Só funcionou quando colocamos * em todos os campos e deixamos preenchido somente a senha

O Postgres recomenda que esse arquivo tenha permissão 0600. Então vamos alterar a permissão do arquivo

  chmod 0600 /root/.pgpass

Feito isso, agora basta execurar o comando pg_dump passando parâmetro --no-password 

  pg_dump --host=nome_do_host --port=5432 --username=postgres --no-password --dbname=nome_do_banco --format custom --blobs --verbose --file /var/teste/arquivo_de_bkp.backup

 

Comentários

 

Quem Sou

Graduado em ADS (Análise e desenvolvimento de sistemas).

Não sou "devoto" de nenhuma linguagem de programação. Procuro aproveitar o melhor de cada uma de acordo com a necessidade do projeto. Prezo por uma arquitetura bem feita, código limpo, puro e simples! 

anuncio atendente