.pgpass


Estou configurando um sistema simples de backup da base de dados do Job4Dev, usando as ferramentas crontab do linux e pg_dump do Postgres. Clássico.

Mas me deparei com um probleminha: a base de dados é criada com um usuário diferente do meu usuário no servidor. E o comportamento padrão do pg_dump (e de qualquer ferramenta relacionada ao Postgres) é de pedir a senha em um prompt, o que é obviamente problemático em uma tarefa automatizada.

A solução é criar um arquivo chamado .pgpass, armazenado na raiz do home dir do usuário que irá executar o comando com a permissão 600 (qualquer outra permissão fará com que o arquivo seja ignorado) e contendo a seguinte informação:

hostname:port:database:username:password

Pronto, agora qualquer comando que envolva a tupla (host, port, database, username) descrita no arquivo tem acesso direto à base. Mais informações podem ser encontradas aqui.