Como agendar um backup automático do PostgreSQL no Cron evitando o problema de senha

Este artigo mostra como agendar um backup automático do PostgreSQL no Cron evitando o problema de senha, ou seja, como fazer o pg_dump ser executado no Cron (crontab -e) e não solicitar senha. Outro problema que acontece também é quando o Cron executa o comando pg_dump, mas salva um arquivo de backup em branco, isso é devido a permissão que veremos adiante.

[ Hits: 2.795 ]

Por: Buckminster em 06/02/2024


Backup automático com Postgres e Cron



Leia todo o artigo antes de sair executando comandos, a não ser que você saiba o que está fazendo!

De todos os softwares utilizados na confecção desta peça articular, somente um se feriu, mas já foi aplicado um curativo (patch) e ele está passando bem!

Nível de execução: Intermediário

Os comandos foram realizados no Debian, mas podem ser usados em qualquer distribuição tendo o cuidado em verificar os caminhos digitados, pois isso muda de acordo com cada um. Os comandos são para PostgreSQL versão 10 e acima. Para versão 9.0 e anteriores você deve pesquisá-los na documentação do PostgreSQL e adaptá-los às suas necessidades; links nas referências.

Levo em conta que você já tenha o PostgreSQL instalado e configurado e com um usuário e um banco de dados criados com as devidas senhas. No final tem um "resumão" com os comandos. Levaremos em conta os dados abaixo, depois substitua pelos seus.
  • Nome do banco de dados: perdido;
  • Usuário do banco de dados: postgres;
  • Porta: 5432;
  • Senha do usuário postgres: 123456.

No link abaixo você encontra como alterar o pg_hba.conf, sugiro fazer o que está no link e depois criar o .pgpass para agendar no Cron com o comando crontab -e, mas é da sua escolha, pois são ações independentes:
***CASO VOCÊ INSTALOU O POSTGRESQL COM sudo, SUGIRO EFETUAR OS COMANDOS ABAIXO COM sudo EM VEZ DE LOGAR COMO ROOT***

1. CRIE O ARQUIVO OCULTO .pgpass

Primeiro logue como root:

su -

Digite a senha.

Mudará para o prompt (ou parecido):

root@usuario:~#

Crie o primeiro arquivo .pgpass em ~/.pgpass (no diretório home do root):

# vim ~/.pgpass
ou
sudo vim ~/.pgpass

(usei o vim, use teu editor de texto preferido)

Coloque dentro a seguinte linha:

localhost:5432:perdido:postgres:123456

Salve e saia do arquivo. No final tem as explicações da linha.

Dê a permissão necessária:

# chmod 600 ~/.pgpass

Veja bem, a permissão 600 é estritamente necessária, senão o arquivo será ignorado.

Em algumas distribuições, a criação de um segundo arquivo .pgpass em /var/lib/postgresql não se faz necessária; aliás, até no Debian (dependendo da versão do Debian e/ou do PostgreSQL) é necessário somente o .pgpass em ~/.pgpass.

Teste criando primeiro somente o arquivo em ~/.pgpass (home do root) com a devida permissão e vá para a etapa 2 e teste no Cron alterando o horário e verificando se o arquivo de backup foi criado e, caso não der, crie o outro .pgpass em /var/lib/postgresql com o usuário do banco de dados conforme o roteiro adiante.

O segundo arquivo .pgpass, caso for necessário, crie em /var/lib/postgresql com o usuário postgres.

De root logue para o usuário postgres:

# su postgres
ou
sudo su postgres

cd /var/lib/postgresql

O prompt mudará para

postgres@usuario:~$

Dê um ls para confirmar que mudou de diretório.

ls
15

(aqui aparecerá a pasta com a versão do PostgreSQL, no caso é o 15)

vim .pgpass

Coloque dentro a seguinte linha:

localhost:5432:perdido:postgres:123456

Salve e saia do arquivo.

Dê a permissão necessária:

chmod 600 .pgpass

Veja bem, a permissão 600 é estritamente necessária, senão o arquivo será ignorado.

Confirme a criação do arquivo:

ls -la

Saia do usuário postgres:

exit

    Próxima página

Páginas do artigo
   1. Backup automático com Postgres e Cron
   2. Criando a linha no cron
Outros artigos deste autor

Instalar certificado SSL/TLS digital válido gratuito no Linux

Instalação do Ventoy, programa para criar pendrives inicializáveis

Instalação do PostgreSQL com Apache 2, PHP 5, OpenSSL no Debian Wheezy 7.7 64 bits com systemd e chroot

Compilação do Squid 3 no Debian Wheezy

Compilação e instalação do Vim e habilitando a copiar e colar com o mouse

Leitura recomendada

Pool de Conexões Transparentes no Postgres usando o pgpool

Como migrar banco de dados MySQL para PostgreSQL

Postgres e os Sistemas Alterdata

Microsiga Protheus com Postgres

psql - Conheça o básico

  
Comentários
[1] Comentário enviado por maurixnovatrento em 07/02/2024 - 18:31h


Muito bom artigo.

______________________________________________________________________
Inscreva-se no meu Canal: https://www.youtube.com/@LinuxDicasPro
Repositório GitHub do Canal: https://github.com/LinuxDicasPro
Grupo do Telegram: https://t.me/LinuxDicasPro
Meu GitHub Pessoal: https://github.com/mxnt10

[2] Comentário enviado por amarildosertorio em 12/02/2024 - 11:51h

Sugestão pra backup e restore do PostgreSQL - Barman (Backup and Recovery Manager)

https://tureba.org/postgresql-barman.html


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts