¿Cómo respaldar la BD de MySQL y enviarlo via e-mail a otro servidor externo?

236

Este pequeño shell-script se hace cargo de respaldar la BD de mysql en dos formatos (txt  y tgz), lo transfiere a otro servidor y se envian via e-mail a otro servidor externo (gmail, yahoo, hotmail) en forma automatica. Este respaldo se ejecuta cada 4 horas. Tambien anexo al final el cron que lo ejecuta y el contenido del mensaje.

# —- Shell-Script

#!/bin/sh
# Script para hacer backups de bd para MySQL
# Date 29/Abr/08
# Lic. Domingo Varela Y.
# Probe = True
#

# Settings

#fecha=dblinuxsc-`date +%y-%m-%d`
fecha=dblinuxsc-`date +%d-%m-%Y_%H.%M`
#dir=`pwd`
dir=/home/dvarela/backups

#
if [ -d $dir ]; then

  mysqldump –opt –password=mipassword –user=miusername midatabase > $dir/$fecha.sql
  sleep 5
  mysqldump –opt –password=mipassword –user=miusername midatabase | gzip > $dir/$fecha.sql.gz

fi

# — Tiempo de espera 1 minuto para hacer la transferencia
sleep 5

#
# Area de transferencia via ssh al otro servidor
#
#

cd $dir
scp $fecha.sql $fecha.sql.gz dvarela@listas:/home/dvarela/backups

# Enviamos la bd via mail a un servidor externo

mutt -n -s “Respaldo DB” -a $fecha.sql.gz username@algundominio.com < mensaje.txt
sleep 5
###

# — Crontab —

dvarela@correo:~/backups$ crontab -l
# m h  dom mon dow   command
# min hora dia-mes mes dia-semana comando
0       */4   *      *     *      /home/dvarela/backups/respaldo-db.sh  2>&1 | tee /home/dvarela/backups/respaldo-db.out

# — Mensaje.txt —

dvarela@correo:~/backups$ cat mensaje.txt

La generacion de los backups de la BD de Linuxsc
generandose  en dos formatos

1) La primera es un archivo en texto plano con extension .sql
2) Esta ultima esta comprimida con gzip

Saludos