Skip to content

Instantly share code, notes, and snippets.

@malkafly
Created January 29, 2024 17:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save malkafly/388dec996d5aa18d3520ec34d368ea90 to your computer and use it in GitHub Desktop.
Save malkafly/388dec996d5aa18d3520ec34d368ea90 to your computer and use it in GitHub Desktop.

Você deseja um script shell (.sh) para gerenciar backups e restaurações de todos os seus bancos de dados MySQL. Vou criar um script que aceita um argumento opcional. Se um caminho for fornecido, o script tentará restaurar os bancos de dados a partir de um arquivo .sql localizado nesse caminho. Se nenhum caminho for fornecido, ele criará um backup de todos os bancos de dados.

Aqui está um exemplo de como esse script pode ser estruturado:

#!/bin/bash

# Configuração do MySQL
USERNAME="homestead"
PASSWORD="secret"

# Verifica se um caminho foi fornecido
if [ "$#" -eq 1 ]; then
    # Restaura os bancos de dados a partir do arquivo fornecido
    MYSQL_DB_PATH=$1
    echo "Restaurando bancos de dados a partir de $MYSQL_DB_PATH..."
    mysql -u $USERNAME -p$PASSWORD < $MYSQL_DB_PATH
else
    # Faz backup de todos os bancos de dados
    BACKUP_FILE="all_databases_$(date +%Y%m%d_%H%M%S).sql"
    echo "Criando backup de todos os bancos de dados em $BACKUP_FILE..."
    mysqldump --user=$USERNAME --password=$PASSWORD --all-databases > $BACKUP_FILE
fi

Para usar esse script:

  1. Salvar o script: Salve o código acima em um arquivo chamado backup_restore.sh no seu servidor.
  2. Tornar executável: Execute chmod +x backup_restore.sh para tornar o script executável.
  3. Executar o script:
    • Para criar um backup: ./backup_restore.sh
    • Para restaurar de um arquivo específico: ./backup_restore.sh /caminho/para/o/arquivo.sql

Nota Importante:

  • Segurança: Este script contém o nome de usuário e senha em texto claro. Tenha cuidado com a segurança e as permissões deste arquivo.
  • Restauração: Ao restaurar, certifique-se de que o arquivo .sql esteja no formato correto e seja compatível com a estrutura dos seus bancos de dados existentes. Restaurar de um backup incorreto pode sobrescrever dados valiosos.
  • Teste: Sempre teste scripts como este em um ambiente de teste antes de usá-los em produção para evitar perda de dados.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment