.pgpass

February 16, 2008

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.

tags: , , ,
posted in Desenvolvimento by Miguel Galves

Follow comments via the RSS Feed | Leave a comment | Trackback URL

  • http://www.via6.com/topico.php?tid=155720 Miguel via Rec6

    Log4Dev » .pgpass…

    Dica útil para quem trabalha com postgres e não quer ter que ficar digitando a senha da base de dados o tempo todo. Mais útil ainda para quem quer configurar backup de bases com crontab….

  • http://swen.uwaterloo.ca/~ttonelli/ Thiago

    Ou voce poderia ter feito um script em expect. Mesmo que nao seja a melhor solucao pra esse caso, eh uma boa arminha pra ter na sua toolbox ;-)

  • Miguel Galves

    Como seria um script em expect? Ficar monitorando o prompt do pg_dump pra mandar a senha?

  • http://swen.uwaterloo.ca/~ttonelli/ Thiago

    Isso. Expect eh uma extencao de TCL que ajuda voce a escrever scripts pra programas interativos. Basicamente voce fala “agora espera aparecer ‘password’ e daih manda ‘blabla’”.

    No seu caso voce tinha um workaround decente, mas quando nao tem, o unico jeito eh apelar pra uns scripts desses.

  • Miguel Galves

    Eu cheguei a pensar nesta solução. Mas a experiência mostra que em geral estas ferramentas administrativas, que executam ações bem específicas (dump, restore, etc..) sempre possuem uma versão que permite executar automaticamente sem prompt.

blog comments powered by Disqus

Switch to our mobile site

 
Powered by Wordpress and MySQL. Theme by Shlomi Noach, openark.org