Como Criar um Script para Realizar Backup de Bancos de Dados MySQL no Linux

Como Criar um Script para Realizar Backup de Bancos de Dados MySQL no Linux

Neste artigo, vamos criar um script Bash para realizar o backup de bancos de dados MySQL no seu servidor Linux. Esse script vai automatizar o processo de backup, incluindo a criação de diretórios separados por data e a compactação dos arquivos SQL.

Requisitos

Antes de começar, você precisa ter os seguintes requisitos em seu sistema:

  • Um servidor Linux com MySQL instalado.
  • Acesso de superusuário (root) ou permissões para acessar bancos de dados MySQL.
  • Conhecimento básico de shell scripting.

Passo 1: Criar o Script de Backup

Vamos criar um script Bash para realizar o backup dos bancos de dados MySQL. Abra seu editor de texto favorito e crie um novo arquivo chamado backup_mysql.sh. Cole o seguinte código no arquivo:

#!/bin/bash

# Pegando a data atual
date=$(date +"%Y-%m-%d")

# Diretório de backup
BACKUP_DIR="/opt/backup"

# Criando um diretório com a data atual
mkdir -p "$BACKUP_DIR/$date"

# Acessando o diretório com a data atual
cd "$BACKUP_DIR/$date"

# Obtendo uma lista de todas as bases de dados, excluindo bases de sistema
databases=$(mysql -u USUARIO -pSENHA -e "SHOW DATABASES;" | grep -Ev "(Database|information_schema|performance_schema|mysql)")

# Loop para fazer o backup de cada banco de dados
for db in $databases; do
    mysqldump --user=USUARIO --password=SENHA "$db" | gzip > "$db.sql.gz"
done

Certifique-se de substituir USUARIO e SENHA pelos detalhes corretos de acesso ao seu servidor MySQL.

Passo 2: Tornar o Script Executável

Após criar o script, você precisa torná-lo executável. Abra um terminal e navegue até o diretório onde o script está localizado. Em seguida, execute o seguinte comando:

chmod +x backup_mysql.sh

Passo 3: Executar o Script

Agora que o script é executável, você pode rodá-lo para fazer o backup dos seus bancos de dados MySQL. Basta executar o seguinte comando:

./backup_mysql.sh

O script criará um diretório de backup com a data atual em /opt/backup (você pode ajustar o diretório conforme necessário) e dentro desse diretório, os arquivos de backup de cada banco de dados serão compactados.

Agendando Backup Automático (Opcional)

Para automatizar o processo de backup, você pode agendar a execução do script em intervalos regulares usando o cron. Por exemplo, para executar o script todos os dias à meia-noite, você pode adicionar uma entrada no cron da seguinte maneira:

crontab -e

Adicione a seguinte linha ao arquivo de agendamento:

0 0 * * * /caminho/completo/para/backup_mysql.sh

Certifique-se de substituir /caminho/completo/para/backup_mysql.sh pelo caminho real para o seu script de backup.

Isso concluirá a criação do script de backup de bancos de dados MySQL no Linux. Agora, seus bancos de dados serão automaticamente copiados e salvos em backups compactados com a data atual, facilitando a restauração de dados quando necessário.