Esta dica é um script que eu utilizo muito nos meus servidores MySQL, normalmente para fazer um backup diário.

Não basta apenas fazer o backup, se o HD der defeito perderemos ele, então muito normalmente eu envio o backup para outro lugar, nesse script após o backup, o mesmo é enviado via FTP para outro servidor, ou máquina, seja lá para onde, garantindo que você tenha sempre uma cópia fora.

O MySQL não tem scheduler, então eu agendo essa tarefa no CRON (Agendador de Tarefas do Linux).

#!/bin/sh

caminhoLocal="/home/alexandre/www/backup-d/filesSQL/"
cd $caminhoLocal

dataAgora=`date +%Y-%m-%d-%H.%M`
hostname="servidor2"
username="alexandre"
password="654321"

# CRIA O ARQUVIO BACKUP DO MYSQL
mysqldump -u root -p654321 -x --add-drop-table -B banco1 | gzip > backup-"$dataAgora"-banco1-MySQL.sql.gz

# BUSCA O NOME DO ARQUIVO BACKUP E ARMAZENA NA VARIÁVEL
# PARA ENVIAR VIA FTP
arquivo=`ls backup* | sort | sed '$!d'`

lftp <<FTP
open $hostname
user $username $password>/dev/null
cd www/backup-SQL-nevada
put $arquivo
bye
FTP

Linha 3 – >É criado a variável “caminhoLocal” com o caminho ao diretório onde os backups serão armazenados

Linha 4 -> O script entra dentro do diretório armazenado na variável “caminhoLocal

Linha 6 -> é criado a variável “dataAgora” onde será atribuido a data do dia, observem que o conteúdo da variável está entre crase ` onde indica ao shell script para executar aquele comando e armazenar o output dele na variável.

Linha 7 a Linha 9 -> são criados as variáveis que utilizaremos para a conexão do FTP

Linha 12 -> é criado o backup utilizando a ferramento “mysqldump” (Documentação do MySQL Dump) e a saída do backup é compactada utilizando o gzip (Gnu zip) e o arquivo é nomeado, ficando com a seguinte aparência: “backup-2010-02-01-11.30-banco2-MySQL.sql.gz”.

Linha 16 -> armazena na variável “arquivo” o nome do último arquivo de backup feito.

Linha 18 a 24 -> usa o lftp (Sophisticated file transfer program) para enviar o backup via FTP para outro servidor.

Simples assim………….

Configurando Tarefas no Cron -> Link para manual da Red Hat

Posts Relacionados