terça-feira, 22 de janeiro de 2008

Um script para backup de suas bases do MySQL.

Falando mais um pouco sobre backups e MySQL, resolvi compartilhar com vocês o script que utilizo para gerar backup de minhas bases de dados do MySQL.

Eu tenho ciência que é um script bem simples para backup. Sugestões serão bem vindas. Este script pode ser distribuído seguindo as normas da GNU GPL.


#!/bin/bash
#
# Efetua o backup das bases de dados do MySQL.
#
# Autor: Luis FernandoKieça

# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details. http://www.gnu.org/licenses/.

# Diretório de destino.
DSTDIR="/home/backup"

# senha do usuario root para acessar ao mysql, caso exista.
DBPASS=""

########################################
# Altere daqui para baixo por sua própria conta e risco. #
########################################

TMPFILE="/tmp/dbs$$.txt"
DIA=`date +%Y%m%d`
MYSQLSHOW=`which mysqlshow`
MYSQLDUMP=`which mysqldump`
TAR=`which tar`
WC=`which wc`
CUT=`which cut`
GREP=`which grep`
XARGS=`which xargs`
TAIL=`which tail`
RM=`which rm`

# Recupera as bases de dados do sistema.
if [ "$DBPASS" == "" ]; then
$MYSQLSHOW >> $TMPFILE
else
$MYSQLSHOW --password=$DBPASS >> $TMPFILE
fi

TOTAL=`$WC -l $TMPFILE | $CUT -d' ' -f 1`
DBS=`$TAIL -$((TOTAL - 3)) $TMPFILE | $GREP -v "^+-" | $CUT -d ' ' -f 2 | $XARGS`
$RM -rf $TMPFILE

for DB in $DBS; do
if [ "$DBPASS" == "" ]; then
$MYSQLDUMP -B $DB -c --create-options > mysql-$DB-$DIA.sql
else
$MYSQLDUMP -B $DB -c --create-options --password=$DBPASS > mysql-$DB-$DIA.sql
fi
$TAR -czvf mysql-$DB-$DIA.tgz mysql-$DB-$DIA.sql --remove-files
done

Bem, como disse anteriormente, o script é bem simples. Utilize-o por sua própria conta e risco. Sua utilização implica na completa aceitação da GNU GPL.

E você: como efetua seus backups de suas bases de dados?

Nenhum comentário: