Ir para conteúdo

[Linux] Auto-Backup Database


Posts Recomendados

Galera esse script é um auto backup da sua database, quem gosta de prevenir vamos ao tutorial.

 

Backup.sh

 

Criei uma pasta em qualquer local no linux, no meu caso eu fiz uma pasta com o nome database que está localizada na pasta home.

home/database/backup.sh

Certo vamos configura o arquivo, dentro dele já vem tudo explicado mais vou dar um reforço, dentro do arquivo backup.sh contém:

#!/bin/bash


CAMINHO="/home/database/" <--- local onde vai ficar salvo os backups
NOMEBACKUP="server-backup" <--- nome do backup
USER="root" <--- não mexe
SENHA="nitendo64" <--- senha da database
BANCO="casa_blanca" <--- nome da database


#Nao mexer daqui pra baixo
TEMPO="$(date +'%d-%m-%Y-%H-%M')"
#####
#Rodando o backup
#####


if [[ -z "$USER" || -z "$SENHA" || -z "$BANCO" ]]; then
    echo "Por favor preencha o usuário, senha e banco de dados nas configurações."
else
    mysqldump -u$USER -p$SENHA $BANCO > $CAMINHO"/"$NOMEBACKUP"-"$TEMPO".sql"
fi

Certo configurado né, vamos fazer um teste:

Acessa a pasta:

cd /home/database

Da permissão pros arquivos dentro dela, no caso o backup.sh:

chmod 777 -R *

Roda o script pra um teste:

./backup.sh

Veja na imagem do meu teste, já aparece ali a database, então ta ok deu certo as configurações:

 

ssoo.png

 

Tudo bem, agora vamos configura pra ficar automático, pra todos os dias o script executar o backup em um certo horário:

crontab -e

Se aparecer algo tipo seleciona alguma opção, selecione Nano, que provavelmente seja numero 2...

 

------------------------------------------------------------------------------------------

qehz.png

------------------------------------------------------------------------------------------

 

Se não aparecer vai direto pra isso:

 

dyiq.png

 

Digite isso dentro do nano, como você ver na imagem acima já tem adicionado:

0 6,21 * * * sh /home/database/backup.sh
ctrl+x
y
da ENTER

No meu caso botei pro script ser executado as 06:00hrs e 21:00hrs, então todo os dias nesse horário o script vai fazer o backup pra essa pasta que configurei, caso queria mudar o horário a logica do comado é clara né.

 

Caso queria deixar de minutos em minutos abaixo observe um exemplo de 5 em 5 minutos:

*/5 * * * * sh /home/database/backup.sh

Caso queria deixar de horas em horas abaixo observe um exemplo de 1 em 1 hora:

0 */1 * * * sh /home/database/backup.sh

Qualquer duvida postem, clica em GOSTEI, valeu.

 

Créditos total:

Joffily Ferreira

Link para o comentário
Compartilhar em outros sites

Excelente tutorial Bruno, obrigado =)

 

Uma dica que dou pra quem vai implementar esse script, é usar FTP externo pra envio

sem necessidade de alterar esse script, como?

 

1- Monte o diretório /backup via NFS pro FTP (Google tem script pronto fácil de encontrar pra isso)

2- Mude o diretório no script acima para salvar em /backup

 

Por que usar FTP externo? Já parou pra pensar que se o HD queimar e o RAID (se usar)

falhar você perderia tudo mesmo tempo backup? Um backup externo é um plano B

pra situações de catástrofe total. Lá na empresa, todos os servidores possuem 3x

tipos de backup. Plano A, B, C

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...