Backup semanal/mensal/anual do PostgreSQL
Dica publicada em Linux / Backup
Backup semanal/mensal/anual do PostgreSQL
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
# vim mensal.sh
# vim anual.sh
Bom, feito estes scripts, vamos dar permissão:
# chmod +x *.sh
Agora, vamos agendar os scripts no crontab:
# vim /etc/crontab
Pronto, agora você terá um backup semanal, mensal e anual do banco de dados PostgreSQL.
Espero ter ajudado.
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
#!/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
#!/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
#!/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
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.
o caminho correto para cada script no caso acima é:
/postgres/script/script.sh