Iae turma, tranquilo?
Ontem, tive que dar uma estudada para realizar backups através de script no
PostgreSQL 8.3 automaticamente. Após concluir, achei que seria legal compartilhar com vocês.
Não vou abordar sobre como instalar o PostgreSQL, somente mesmo a geração do backup. Vamos lá.
Imaginando que já estamos com o PostgreSQL 8.3 instalado e funcionando. No meu caso, o PostgreSQL está instalado em:
# cd /opt/PostgreSQL/8.3/
Dentro desta pasta, eu criei uma chamada
script:
# mkdir script
Dentro da pasta
script, salve os arquivos:
# vim semanal.sh
##############################################################
#!/bin/bash
date +%A > "/postgres/script/data.txt" # Pega o nome do dia e salva no arquivo "data.txt"
data=$(cat /postgres/script/data.txt) # Pega o conteúdo gravado no "data.txt"
/opt/PostgreSQL/8.3/bin/pg_dump -h IP_D0_SERVIDOR -U postgres BANCO_PARA_BACKUP > /postgres/$data.sql& # Começa o backup
exit
# vim mensal.sh
##############################################################
#!/bin/bash
date +%B > "/postgres/script/data.txt" # Pega o nome do mes e salva no arquivo "data.txt"
data=$(cat /postgres/script/data.txt) # Pega o conteudo gravado no "data.txt"
/opt/PostgreSQL/8.3/bin/pg_dump -h IP_D0_SERVIDOR -U postgres BANCO_PARA_BACKUP > /postgres/$data.sql& # Começa o backup
exit
# vim anual.sh
##############################################################
#!/bin/bash
date +%Y > "/postgres/script/data.txt" # Pega o numero do ano e salva no arquivo "data.txt"
data=$(cat /postgres/script/data.txt) # Pega o conteudo gravado no "data.txt"
/opt/PostgreSQL/8.3/bin/pg_dump -h IP_D0_SERVIDOR -U postgres BANCO_PARA_BACKUP > /postgres/$data.sql& # Começa o backup
exit
Bom, feito estes scripts, vamos dar permissão:
# chmod +x *.sh
Agora, vamos agendar os scripts no
crontab:
# vim /etc/crontab
#min hora dia mês ano usuário script
00 17 * * * root /postgres/semanal.sh
00 18 30 * * root /postgres/mensal.sh
00 19 30 12 * root /postgres/anual.sh
Pronto, agora você terá um backup semanal, mensal e anual do banco de dados PostgreSQL.
Espero ter ajudado.