backup postgres problema de senha do banco de dados

1

Eu tenho um banco de dados postgres que quero fazer backup regularmente. Para isso, gostaria de usar o script de backup automático aqui

Normalmente eu faço as tarefas administrativas Eu uso este comando:

> sudo -i -u postgres
> psql

Nenhuma senha é solicitada e eu posso fazer o dump manualmente do meu banco de dados. Não é tão ruim.

Usando o script automatizado, vejo um problema de senha. Ele me pergunta por postgres password. Eu nunca configurei e achei que não deveria precisar configurá-lo como o exemplo mostrado acima.

Aqui está como está configurado o meu pg_hba.conf .

# Database administrative login by Unix domain socket
local   all             postgres                                peer
TYPE  DATABASE        USER            ADDRESS                 METHOD

"local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5

Eu realmente preciso definir uma senha postgres para executar meu script?

    
por Bastien Roques 05.11.2015 / 13:53

2 respostas

0

Então, o que descobri para que esse script fosse executado por um usuário do sistema.

  1. Não consegui executá-lo sem definir uma senha para postgres

    $ sudo -i -u postgres

    $ psql

    $ ALTER USER postgres WITH PASSWORD 'new_password';

  2. Em seguida, crie um arquivo .pgpass na home do sistema de uso que está executando o script!

    $ echo '*: *: *: postgres: new_password' > ~ / .pgpass

    $ chmod 0600 ~ / .pgpass

  3. É isso.

Meus erros foram:

  • acho que eu poderia lidar com isso sem definir a senha do postgres.
  • tentando colocar o .pgpass em / var / lib / postgresql (postgres home) em vez da home do sistema do usuário.

Espero que esta ajuda!

    
por 05.11.2015 / 15:02
0

Se você estiver executando o script como root:

sudo -u postgres psql

Se você estiver executando o script como outro usuário do sistema, adicione permissão sudo para este usuário com visudo antes de executar o comando acima.

 <Systemuser> ALL=(postgres) NOPASSWD: /usr/bin/psql
    
por 05.11.2015 / 15:13