Ajuda com Automatização de Backup do PostgreSQL 9.6

1. Ajuda com Automatização de Backup do PostgreSQL 9.6

Robson Martins de Oliveira Junior
robsonmartins

(usa Ubuntu)

Enviado em 13/08/2022 - 17:56h

Boa noite amigos do VOL.
Achei um script bem interessante na internet porém não sei com aplica-lo (Onde por a database), sou iniciante no mundo do Linux, ainda mais no Ubuntu Server.
Segue o script: # Script para backup dos bancos de dados

#!/bin/bash
# Location to place backups.
backup_dir="/home/postgres-backup/"
#String to append to the name of the backup files
backup_date=`date +%d-%m-%Y`
#Numbers of days you want to keep copie of your databases
number_of_days=30
databases=`/usr/local/pgsql/bin/psql -l -t | cut -d'|' -f1 | sed -e 's/ //g' -e '/^$/d'`
for i in $databases; do
if [ "$i" != "template0" ] && [ "$i" != "template1" ]; then
echo Dumping $i to $backup_dir$i\_$backup_date
/urs/local/pgsql/bin/pg_dump -Fc $i > $backup_dir$i\_$backup_date
fi
done
find $backup_dir -type f -prune -mtime +$number_of_days -exec rm -f {}


Onde colocar a pasta para salvar o banco ficou fácil, só não entendi onde coloco o banco que quero fazer backup.
Pretendo fazer ele rodar via Crontab, e depois ele copiar o backup para dentro do meu Gdrive via rclone.


Obrigado amigos!


  


2. Re: Ajuda com Automatização de Backup do PostgreSQL 9.6

Carlos A. P. Cunha
Carlos_Cunha

(usa Linux Mint)

Enviado em 14/08/2022 - 11:15h

Pelo que entendi ele esta salvando de "tudo" baseado nessa consulta sql e depois manipulando a saída:


/usr/local/pgsql/bin/psql -l -t | cut -d'|' -f1 | sed -e 's/ //g' -e '/^$/d


Vc pode executar isso no shell para ver a saída, eter certeza disso, e pode editar esse parte do script com o que vc apenas deseja por exemplo....

#-------------------------------------------------------------------------------------#
"Falar é fácil, me mostre o código." - Linus Torvalds
#-------------------------------------------------------------------------------------#



3. Re: Ajuda com Automatização de Backup do PostgreSQL 9.6

leandro peçanha scardua
leandropscardua

(usa Ubuntu)

Enviado em 15/08/2022 - 00:25h


Na linha:
databases=`/usr/local/pgsql/bin/psql -l -t | cut -d'|' -f1 | sed -e 's/ //g' -e '/^$/d'`
ele lista os bancos de dados existentes e na linha:
/urs/local/pgsql/bin/pg_dump -Fc $i > $backup_dir$i\_$backup_date
ele faz o backup dentro de um loop atribuindo o nome do banco encontrado no comando anterior à variável $i.
Tecnicamente, se você quiser criar um script p fazer backup de um único banco vc roda o 1o comando para obter o nome do banco q vc quer e substitui $i pelo nome do banco encontrado antes. E remove as linhas:
for i in $databases; do
if [ "$i" != "template0" ] && [ "$i" != "template1" ]; then

fi
done

Mas eu não rodei p ter certeza, então teste aí p ver se dá certo.


4. Re: Ajuda com Automatização de Backup do PostgreSQL 9.6

Robson Martins de Oliveira Junior
robsonmartins

(usa Ubuntu)

Enviado em 15/08/2022 - 10:16h

Aparentemente ele não tá achando caminho do postgres,

root@sd-borracheiro-2:/opt/tomcat/Backup# ./Backup.sh
./Backup.sh: line 8: /usr/local/pgsql/bin/psql: No such file or directory
find: missing argument to `-exec'
root@sd-borracheiro-2:/opt/tomcat/Backup#



Como acho essa pasta do postgres?
Tentei o find, tbm não acho
Sei que os arquivos de configuração estão na pasta:nano /etc/postgresql/9.6/main/postgresql.conf


5. Re: Ajuda com Automatização de Backup do PostgreSQL 9.6

leandro peçanha scardua
leandropscardua

(usa Ubuntu)

Enviado em 15/08/2022 - 16:51h


robsonmartins escreveu:

Aparentemente ele não tá achando caminho do postgres,

root@sd-borracheiro-2:/opt/tomcat/Backup# ./Backup.sh
./Backup.sh: line 8: /usr/local/pgsql/bin/psql: No such file or directory
find: missing argument to `-exec'
root@sd-borracheiro-2:/opt/tomcat/Backup#



Como acho essa pasta do postgres?
Tentei o find, tbm não acho
Sei que os arquivos de configuração estão na pasta:nano /etc/postgresql/9.6/main/postgresql.conf

Se o postgres foi instalado pelo gestor de pacotes, vc pode começar por lá:
dpkg -S /etc/postgresql/9.6/main/postgresql.conf
p ver qual pacote instalouo arquivo de configuração. E depois dpkg -L pacote para ver os arquivos que foram instalados pelo pacote. Daí vc procura por aqueles q estão no script e verifica se estão no PATH. Se não estiverem vc adiciona.



6. Re: Ajuda com Automatização de Backup do PostgreSQL 9.6

Robson Martins de Oliveira Junior
robsonmartins

(usa Ubuntu)

Enviado em 15/08/2022 - 17:01h

Testei os comandos porém sem sucesso.

Está realmente uma icognita pra achar essas pastas.

Segue a foto do que executei.


7. Re: Ajuda com Automatização de Backup do PostgreSQL 9.6

Robson Martins de Oliveira Junior
robsonmartins

(usa Ubuntu)

Enviado em 16/08/2022 - 17:16h


Existe algum tipo de pasta oculta no linux?
To tentando achar, pq só pode estar assim, oculto.

Eu consegui entrando pelo PSQL fazer backup
Porém acho que desse modo não vai me ajudar a agendar o backup.


8. Re: Ajuda com Automatização de Backup do PostgreSQL 9.6

leandro peçanha scardua
leandropscardua

(usa Ubuntu)

Enviado em 18/08/2022 - 00:48h


robsonmartins escreveu:


Existe algum tipo de pasta oculta no linux?
To tentando achar, pq só pode estar assim, oculto.

Eu consegui entrando pelo PSQL fazer backup
Porém acho que desse modo não vai me ajudar a agendar o backup.


se o dpkg não encontrou então vc deve ter instalado de outra forma. Use o locate para encontrar o arquivo
sudo updatedb // atualizar o indice
locate pqsql ou locate pg_dump


9. Re: Ajuda com Automatização de Backup do PostgreSQL 9.6

Robson Martins de Oliveira Junior
robsonmartins

(usa Ubuntu)

Enviado em 18/08/2022 - 14:45h

Usei o LOCATE e achei:

A processar 'triggers' para man-db (2.9.1-1) ...
root@sd-borracheiro-2:/home/ubuntu# locate pg_dump
/etc/alternatives/pg_dump.1.gz
/etc/alternatives/pg_dumpall.1.gz
/opt/tomcat/settings/reports/pg_dump-8.2.21.dll
/opt/tomcat/settings/reports/pg_dump-8.3.15.dll
/opt/tomcat/settings/reports/pg_dump-8.4.8.dll
/opt/tomcat/settings/reports/pg_dump-9.0.4.dll
/opt/tomcat/settings/reports/pg_dump.dll
/usr/bin/pg_dump
/usr/bin/pg_dumpall
/usr/lib/postgresql/9.6/bin/pg_dump
/usr/lib/postgresql/9.6/bin/pg_dumpall
/usr/lib/systemd/system/pg_dump@.service
/usr/lib/systemd/system/pg_dump@.timer
/usr/share/locale/cs/LC_MESSAGES/pg_dump-9.6.mo
/usr/share/locale/de/LC_MESSAGES/pg_dump-9.6.mo
/usr/share/locale/es/LC_MESSAGES/pg_dump-9.6.mo
/usr/share/locale/fr/LC_MESSAGES/pg_dump-9.6.mo
/usr/share/locale/it/LC_MESSAGES/pg_dump-9.6.mo
/usr/share/locale/ja/LC_MESSAGES/pg_dump-9.6.mo
/usr/share/locale/ko/LC_MESSAGES/pg_dump-9.6.mo
/usr/share/locale/pl/LC_MESSAGES/pg_dump-9.6.mo
/usr/share/locale/pt_BR/LC_MESSAGES/pg_dump-9.6.mo
/usr/share/locale/ru/LC_MESSAGES/pg_dump-9.6.mo
/usr/share/locale/sv/LC_MESSAGES/pg_dump-9.6.mo
/usr/share/locale/tr/LC_MESSAGES/pg_dump-9.6.mo
/usr/share/locale/zh_CN/LC_MESSAGES/pg_dump-9.6.mo
/usr/share/man/man1/pg_dump.1.gz
/usr/share/man/man1/pg_dumpall.1.gz
/usr/share/postgresql/9.6/man/man1/pg_dump.1.gz
/usr/share/postgresql/9.6/man/man1/pg_dumpall.1.gz
root@sd-borracheiro-2:/home/ubuntu# locate pqsql
root@sd-borracheiro-2:/home/ubuntu#
}


Quanto a minha instalação:

sudo apt-get update -y
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" | sudo tee /etc/apt/sources.list.d/postgresql-pgdg.list > /dev/null
sudo apt-get update -y
*****************************************
***Postgresql 9.6
sudo apt-get install postgresql-9.6



Foi dessa maneira ai.

O pgdump eu achei a pasta, mas não sei onde por.
Estou quase desistindo pra ser sincero.

att


10. Re: Ajuda com Automatização de Backup do PostgreSQL 9.6

leandro peçanha scardua
leandropscardua

(usa Ubuntu)

Enviado em 18/08/2022 - 17:23h


robsonmartins escreveu:

Usei o LOCATE e achei:

A processar 'triggers' para man-db (2.9.1-1) ...
root@sd-borracheiro-2:/home/ubuntu# locate pg_dump
/etc/alternatives/pg_dump.1.gz
/etc/alternatives/pg_dumpall.1.gz
/opt/tomcat/settings/reports/pg_dump-8.2.21.dll
/opt/tomcat/settings/reports/pg_dump-8.3.15.dll
/opt/tomcat/settings/reports/pg_dump-8.4.8.dll
/opt/tomcat/settings/reports/pg_dump-9.0.4.dll
/opt/tomcat/settings/reports/pg_dump.dll
/usr/bin/pg_dump
/usr/bin/pg_dumpall
/usr/lib/postgresql/9.6/bin/pg_dump
/usr/lib/postgresql/9.6/bin/pg_dumpall
/usr/lib/systemd/system/pg_dump@.service
/usr/lib/systemd/system/pg_dump@.timer
/usr/share/locale/cs/LC_MESSAGES/pg_dump-9.6.mo
/usr/share/locale/de/LC_MESSAGES/pg_dump-9.6.mo
/usr/share/locale/es/LC_MESSAGES/pg_dump-9.6.mo
/usr/share/locale/fr/LC_MESSAGES/pg_dump-9.6.mo
/usr/share/locale/it/LC_MESSAGES/pg_dump-9.6.mo
/usr/share/locale/ja/LC_MESSAGES/pg_dump-9.6.mo
/usr/share/locale/ko/LC_MESSAGES/pg_dump-9.6.mo
/usr/share/locale/pl/LC_MESSAGES/pg_dump-9.6.mo
/usr/share/locale/pt_BR/LC_MESSAGES/pg_dump-9.6.mo
/usr/share/locale/ru/LC_MESSAGES/pg_dump-9.6.mo
/usr/share/locale/sv/LC_MESSAGES/pg_dump-9.6.mo
/usr/share/locale/tr/LC_MESSAGES/pg_dump-9.6.mo
/usr/share/locale/zh_CN/LC_MESSAGES/pg_dump-9.6.mo
/usr/share/man/man1/pg_dump.1.gz
/usr/share/man/man1/pg_dumpall.1.gz
/usr/share/postgresql/9.6/man/man1/pg_dump.1.gz
/usr/share/postgresql/9.6/man/man1/pg_dumpall.1.gz
root@sd-borracheiro-2:/home/ubuntu# locate pqsql
root@sd-borracheiro-2:/home/ubuntu#
}


Quanto a minha instalação:

sudo apt-get update -y
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" | sudo tee /etc/apt/sources.list.d/postgresql-pgdg.list > /dev/null
sudo apt-get update -y
*****************************************
***Postgresql 9.6
sudo apt-get install postgresql-9.6



Foi dessa maneira ai.

O pgdump eu achei a pasta, mas não sei onde por.
Estou quase desistindo pra ser sincero.

att

O script referencia /urs/local/pgsql/bin/pg_dump sua instalação está em /usr/lib/postgresql/9.6/bin/pg_dump.
É necessário corrigir o path. Vc escreveu o locate para encontrar p pgsql errado. Trocou "g" por "q", mas provavelmente ele está no mesmo path do pg_dump



11. Re: Ajuda com Automatização de Backup do PostgreSQL 9.6

Robson Martins de Oliveira Junior
robsonmartins

(usa Ubuntu)

Enviado em 19/08/2022 - 09:38h


Bom dia! Agradeço demais a ajuda que vocês tem me dado.

Segue o novo erro:

psql: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: FATAL: role "root" não existe
find: missing argument to `-exec'


Aparentemente ele tá usando o usuário root, há como eu setar o usuário pra fazer backup? Ou estou interpretando errado?


12. Re: Ajuda com Automatização de Backup do PostgreSQL 9.6

leandro peçanha scardua
leandropscardua

(usa Ubuntu)

Enviado em 19/08/2022 - 22:05h


robsonmartins escreveu:


Bom dia! Agradeço demais a ajuda que vocês tem me dado.

Segue o novo erro:

psql: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: FATAL: role "root" não existe
find: missing argument to `-exec'


Aparentemente ele tá usando o usuário root, há como eu setar o usuário pra fazer backup? Ou estou interpretando errado?

Aqui tem algumas possibilidades
https://stackoverflow.com/questions/31645550/postgresql-why-psql-cant-connect-to-server




01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts