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.