Criando backup automatico de banco de dados

De Wiki Integrator do Brasil
Edição feita às 19h18min de 9 de setembro de 2021 por Integratorhost (disc | contribs)

(dif) ← Edição anterior | ver versão atual (dif) | Versão posterior → (dif)
Ir para: navegação, pesquisa

Preparando o ambiente

As instruções informadas neste artigo são um exemplo de como criar uma rotina de backup automatico para bancos de dados no cPanel.

Primeiramente crie um diretorio/pasta onde será armazenado o backup. Para isso poderá usar o próprio Gerenciador de arquivos do painel

Para o Postgresql

Crie um arquivo chamado backup.sh e coloque este conteúdo:

#Local do backup, um diretório criado na raiz do seu usuário chamado "backup: 
cd ~/backup/
#Backup do banco de dados:  
pg_dump -i BANCO_DE_DADOS>arquivo.sql -U USUARIO --no-owner
#Compactar em .zip com data/hora:  
zip BANCO-"`date '+%d%m%Y%H%M'`".sql.zip arquivo.sql
#Remover o arquivo .sql após compactação  
rm -f arquivo.sql
#Remover arquivos de backup a cada 48 horas passadas.  
find ~/backup/BANCO-* -mmin +$((60*48)) -type f -exec rm {} \;

Para o Mysql

Crie um arquivo chamado backup.sh e coloque este conteúdo:

#Local do backup, um diretório criado na raiz do seu usuário chamado "backup: 
cd ~/backup/
#Backup do banco de dados:  
mysqldump -uUSUARIO_BANCO -pSENHA BANCO_DADOS>BANCO_DADOS.sql
#Compactar em .zip com data/hora:  
zip BANCO-"`date '+%d%m%Y%H%M'`".sql.zip arquivo.sql
#Remover o arquivo .sql após compactação  
rm -f arquivo.sql
#Remover arquivos de backup a cada 48 horas passadas.  
find ~/backup/BANCO-* -mmin +$((60*48)) -type f -exec rm {} \;

O arquivo backup.sh deve ficar na raiz do seu usuário, aquele que você vê ao acessar o SSH/FTP.

No momento de agendar, dentro do cPanel em Cron o caminho dele pode ser usado assim:

~/backup.sh

Você agenda para executar uma vez ao dia, durante X hora da madrugada e terá retenção de backup do banco de dados por 2 dias. Se precisar por algum outro periodo/tempo, troque o 48 por outro tempo em dias que necessita.