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