Ir para conteúdo

[Linux] Backup automatizado do banco MySQL


Posts Recomendados

Olá XTibianos!

 

Dessa vez vou ensinar como fazer um backup do banco de dados do seu servidor de forma automatizada, para caso algo aconteça você tenha um backup recente para dar rollback smile.png

Vamos lá?

Antes de começarmos, recomendo que instalem o editor de texto chamado nano, pois o vim pode dar um pouco de trabalho para os mais leigos. Para instalar o nano basta rodar o comando abaixo:

-> CentOS

yum install nano

->Ubuntu/Debian

apt-get install nano

O primeiro passo é instalar o cron, que nada mais é do que um software que executa de tempo em tempo scripts ou outros softwares de forma automatizada da maneira que você programá-lo. Em alguns sistemas operacionais o mesmo já vem instalado, mas caso não esteja no seu servidor, utilize o comando abaixo:

-> CentOS

yum install cronie

->Ubuntu/Debian

apt-get install cron

Em seguida vamos alterar o editor de texto padrão para o nano, usando o comando abaixo:

export EDITOR=nano 

Observação: caso sinta facilidade ou prefira utilizar o vim ou qualquer outro editor de texto, basta pular essa etapa e continuar o tutorial normalmente smile.png

Agora vamos configurar o script de backup. Acesse a pasta em que encontra seu servidor e crie uma nova pasta chamada backup com o comando abaixo:

cd /pasta-do-seu-servidor
mkdir backup 

Agora faremos o download do script. Deixarei o código fonte do script abaixo para caso um dia no futuro o link de download do mesmo fique indisponível. Para baixar o script utilize o comando abaixo:

wget http://scripts.4youstart.com/backupsql.sh 

Abaixo segue o código fonte do script. Será necessário editar algumas informações no mesmo antes de utilizá-lo. Utilize o nano para abrir o script:

nano backupsql.sh 

Em vermelho estão as partes que deverão ser editadas para que o script funcione. Explicarei como configurar abaixo do código.

#!/bin/bash

# ------------------------------------
# Parte de configuração
# ------------------------------------

#onde sera salvo o backup
CAMINHO="/pasta-do-seu-servidor/backup"

#nome que o script salvara o arquivo de backup .sql
NOMEBACKUP="ot-backup-do-banco"

#usuário mysql - normalmente root
USER="root"

#senha do mysql - normalmente mesma do phpmyadmin
SENHA="suasenha"

#banco do servidor
BANCO="bancodoservidor"

# ------------------------------------
# Execução do script - nao mexer
# ------------------------------------
TEMPO="$(date +'%d-%m-%Y-%H-%M')"

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" 

3 variáveis deverão ser editadas para que o script funcione (em alguns casos 4). Edite sempre o valor entre aspas duplas, por exemplo: CAMINHO="editar_aqui". Abaixo estão as variáveis a serem editadas

  • Linha 8: edite o caminho alterando para /pasta_do_seu_servidor/backup.
  • Linha 11: não há necessidade de editar.
  • Linha 14: por padrão os servidores utilizam o usuário root no banco. Mas caso seu servidor utilize outro usuário para se conectar ao mysql, altere essa variável.
  • Linha 17: insira a senha de conexão ao MySQL (normalmente é a mesma que você usa para se conectar ao phpmyadmin, caso tenha dificuldade de encontrá-la, ela está no config.lua)
  • Linha 20: insira o nome do banco de dados do servidor (caso tenha dificuldade de encontrar o nome do banco, ele está no config.lua)

Feito isso, caso esteja utilizando o nano para editar o arquivo, aperte CTRL + X, em seguida aperte Y (ou S caso o sistema operacional esteja em português) e por fim pressione ENTER para salvar o arquivo.

Agora, vamos configurar o cron para rodar o script. Vou ensinar como configurá-lo para rodar x vezes ao dia, em um outro tutorial ensino melhor a utilização do cron, caso queiram. Para isso, digite o comando abaixo:

crontab -e  

Seu editor de texto padrão vai abrir um arquivo para editar. Vamos inserir uma linha nesse arquivo para que o cron funcione:

0 0,12 * * * /pasta_do_seu_servidor/backupsql.sh

O código acima rodará o backup ás 00:00 e 12:00. Caso queira alterar isso, basta alterar os números em vermelho. Salve o arquivo de texto que abriu e pronto, seu backup automatizado está funcionando!

Para se certificar e ter certeza que está tudo funcionando 100%, após 10 minutos do horário configurado para o cron, acesse a pasta em que seu servidor se encontra, em seguida acesse a pasta backup e verifique se há arquivos .sql nela. Cada backup será salvo como "ot-backup-do-banco-data-do-backup.sql".

Fim! Espero que seja útil e até a próxima smile.png

(Esse tutorial foi completamente escrito por mim. Qualquer cópia deve ser previamente autorizada e conter os devidos créditos.)

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...