Anderson Jacson </a>  
Login

Menu

1 visitantes online (1 na seção: Artigos e Dicas)

Usuários: 0
Visitantes: 1

mais...

SmartSection is developed by The SmartFactory (http://www.smartfactory.ca), a division of INBOX Solutions (http://inboxinternational.com)
Linux > Backup do Mysql com dumps separados por base.
Backup do Mysql com dumps separados por base.
Publicado por Anderson em 24/8/2011 (1365 leituras)

 Backup do Mysql com dumps separados por base.

 

Script coletado de http://www.yeslinux.com.br/?p=413. Fiz apenas uma alteração para compactar com gzip os dumps.

 

 

#!/bin/bash

# Variaveis Fixas
DATA=`date +%d-%B-%Y_%H-%M`
HostName=`hostname`
LOG=/backup/logs/backup_mysql_dumps_$DATA.log

# Variaveis para Ajustar de Acordo com a necessicade
AdmMySQL=root
PassMySQL=SENHA_DO_SEU_BANCO
PastaBackup=/backup/dumps

# Verifica se existe a pasta de para LOGs, caso contrario ela sera criada
if [ ! -d $PastaBackup ]; then
echo >> $LOG
echo "A Pasta de Backup nao existe!!! Criando..." >> $LOG
mkdir -p $PastaBackup
echo >> $LOG
echo "Pasta Criada" >> $LOG
[ "$?" != "0" ] && exit 1
fi

# Antes de fazer o backup, vamos verificar a integridade do banco e corrigi-lo
# caso haja algum problema
echo " Inicio do Backup - Servidor $HostName - $DATA " > $LOG
echo " -----------------------------------------------------------------------------" >> $LOG
echo -n "Veriricando a Integridade do Banco de Dados..." >> $LOG
echo >> $LOG
sleep 1
mysqlcheck -A -e -u $AdmMySQL -p$PassMySQL --auto-repair >> $LOG
echo >> $LOG
echo "Checagem Finalizada!!! " >> $LOG
echo "-----------" >> $LOG
echo -n "Inicio dos Backups..." >> $LOG
echo " -----------------------------------------------------------------------------" >> $LOG
echo -n "Databases que serao Copiadas:" >> $LOG
echo >> $LOG
mysql -u $AdmMySQL -p$PassMySQL -e "show databases;" >> $LOG
echo >> $LOG
sleep 1
# Verifica se existe a pasta de para backup, caso contrario ela sera criada
if [ ! -d $PastaBackup ]; then
echo >> $LOG
echo "A Pasta de Backup nao existe!!! Criando..." >> $LOG
mkdir -p $PastaBackup
echo >> $LOG
echo "Pasta Criada" >> $LOG
[ "$?" != "0" ] && exit 1
fi
echo >> $LOG
mysql -u $AdmMySQL -p$PassMySQL -e "show databases;" > /tmp/databases.txt
linhas_file=`cat /tmp/databases.txt | wc -l`
databases=`echo $(($linhas_file-1))`
tail -n $databases /tmp/databases.txt > /tmp/databases_backup.txt
databases_backup=`cat /tmp/databases_backup.txt`
for i in $databases_backup; do
echo >> $LOG
echo "Fazendo backup do Database $i..." >> $LOG
echo >> $LOG
mysqldump -u $AdmMySQL -p$PassMySQL $i |gzip > $PastaBackup/$i-$DATA.sql.gz
# tail -n 5 $PastBackup/$i-$DATA.dump >> $LOG
echo "---------------------------" >> $LOG
echo >> $LOG
done
echo " -----------------------------------------------------------------------------" >> $LOG
echo >> $LOG
echo "Backup Finalizado" >> $LOG


Navegue pelos artigos
Artigo prévio Próximo artigo
Os comentários são de propriedade de seus respectivos autores. Não somos responsáveis pelo seu conteúdo.
Pesquisa