Criando script-shell para backupear sua base de dados mysql
Vou criar um script para executar o backup colocando-o no diretório /usr/local/bin. Crie um arquivo vazio com o comando touch
touch /usr/local/bin/bkpmysql
E de permissão de execusão para o mesmo usando o comando chmod:
chmod +x /usr/local/bin/bkpmysql
Crie um diretorio onde serão armazenados seus backups para deixar os backups mais organizados e de facil acesso eu guardo todos os meus backups em uma pasta no diretorio / mas você pode usar qualquer diretório que preferir.
Com o comando mkdir -p crie o diretorio bkp e dentro dele crie um sub-diretório mysql
mkdir -p /bkp/mysql/
Abra seu editor de texto preferido: gedit, kedit, vim, mcedit, etc... e crie um arquivo com o script a seguir:
#!/bin/sh
#
# Não esqueça de editar as variáveis de configuração
#
# A variavel abaixo pega a data atual do sistema, quando o scritpt
# for executado ele irá definir a data atual como nome do arquivo,
# desta forma fica mais fácil identificar o backup atual
DATA=$(/bin/date +%Y%m%d)
# Esta outra variavel guarda o nome de sua base de dados assim
# o script sabera de qual base de dados ele irá fazer o backup
DATABASE="sua base de dados"
#Esta variável guarda o caminho onde o backup será armazenado...
CAMINHO="/bkp/mysql"
# Esta variável é que dá nome ao arquivo de backup nome
# da base de dados junto com a data atual.
# Nome da base de dados
NOME="$DATABASE-$DATA.sql"
# VARIÁVEIS DE CONFIGURAÇÃO DO MYSQL
# Indique o host onde devemos nos conectar para realizar o backup
HOST="localhost"
# Indique o usuário que tem privilégios para este tipo de
# procedimento na base. Geralmente é o root.
USER="seu_usuario_no_mysql"
# SENHA DE CONEXÃO COM A BASE DE DADOS
PASSWORD="sua senha"
# FIM DAS VARIVEIS DE CONFIGURAÇÃO
# Entra no diretório onde o backup será gravado
cd $CAMINHO
# Este comando limpa backups antigos. Se você quiser mantê-los, basta comentar esta linha
# Obs: se sua base de dados tiver muitos registros, isso pode gerar um consumo grande de hd
# Limpando backup antigo
echo " Limpando backups antigos "
rm -rf $CAMINHO/*
# O comando abaixo roda um dump do mysql, este comando já está incluído
# em sua instalação. Você pode obter mais informações na documentação oficial
# no site do mysql.
echo " aguarde backup esta sendo executado ................"
mysqldump -h $HOST -u $USER -p$PASSWORD $DATABASE > $NOME
if [ $? -eq 0 ]; then
echo " Beleza! O backup foi concluido com sucesso!!!"
else
echo "Erro ao executar o backup do MySQL"
echo "Verifique o problema e tente novamente!"
exit 1
fi
# Estamos usando o comando tar -jcf para compactar o backup em .tar.bz2
# Compactando seu backup."
echo "Aguarde enquanto backup esta sendo compactado"
tar -jcf ${DATABASE}-${DATA}.tar.bz2 ${DATABASE}-${DATA}.sql
echo " Backup foi compactado com Sucesso"
# FIM DO SCRIPT
Você pode colocar este arquivo bkpmysql no diretorio /usr/local/bin assim você pode executá-lo rodando o comando bkpmysql.
Pra facilitar a vida vamos criar no crontab uma rotina de backup
Para visualizar o que ja esta agendado no Cron digite crontab -l
Rode o comando crontab -e para alterar o cron. Edite a linha como mostra o exemplo a seguir
#min hor ddm mes dds comando
00 05 * * * /usr/local/bin/bkpmysql
No exemplo acima estou dizendo ao cron que ele execute o backup da base de dados todos os dias ás 5:00 da matina
mais caso tenha alguma dúvida. Você pode encontrar um bom artigo sobre o cron no link abaixo
Artigo sobre o cron
Restaurando um base do MySQL
Para restaurar os backups em sua base de dados entre no diretório onde esta o backup, descompacte o arquivo rodando o comando
$ tar -xvfj arquivo.tar.bz2
depois rode o comando de restauração da base de dados
mysql -h localhost -ueder -pminhasenha < arquivobackup.sql
Bom é isso espero ter ajudado no script que a
Dúvidas sugestões e correções mande email
Este endereço de e-mail está protegido contra spambots. Você deve habilitar o JavaScript para visualizá-lo.
Documentação do mysqldump


