Automatizar los backups de nuestra base de datos

Utilizando el poder divino que nos brindan nuestros viejos amigos BASH y CRON, aprenderemos como automatizar en uno simples pasos una de las tareas mas tediosas con las que puede contar un administrador: LOS BACKUPS!

1. Creamos un archivo del tipo backupdb.sh (Extensión sh = Shell Script), copiamos y pegamos el siguiente código. Configurar con nuestros datos.

[CODE]
# DEFINIR VARIABLES
DBNOMBRE=mibasededatos
DBPASSWORD=mipassword
DBUSUARIO=miusuario
EMAIL=”mi@email.com”

mysqldump –opt -u$DBUSUARIO -p$DBPASSWORD $DBNOMBRE > backup.sql
gzip backup.sql
FECHA=`date “+%Y-%m-%d”` ; mv backup.sql.gz $DBNOMBRE-backup-$FECHA.sql.gz
echo “La copia de seguridad ha sido creada de forma exitosa. Base de datos: $DBNOMBRE Fecha: $FECHA” | mutt -a $DBNOMBRE-backup-$FECHA.sql.gz $EMAIL -s “Mi sitio X: Backup del dia: $FECHA”
rm $DBNOMBRE-backup-$FECHA.sql.gz
[/CODE]

2. Abrimos el ftp. Una vez logeados, subimos en el directorio /etc de nuestro root el archivo anteriormente creado. Importante: si no asignamos permisos de ejecución el script no funcionara.

Cron Bash

3. Entramos en nuestro Cpanel. Cron jobs -> Seleccionar: [Modo Avanzado]. Configuramos el script para que se ejecute todo los días a las 12:30 PM

cron.jpg

Resultado Final:
Asunto: Mi sitio X: Backup del día: 2008-01-13
De: XXX@ServidorX
Cuerpo del mensaje: La copia de seguridad ha sido creada de forma exitosa. Base de datos: tu_base_de_datos Fecha: 2008-01-13
Archivo adjunto: tu_base_de_datos-backup-2008-01-13.sql.gz

Tip: Para saber la hora en la que esta configurada el servidor, creamos un archivo del tipo hora.php y le pegamos el siguiente código:

[PHP]
< ?php
echo date('h:i:s');
?>
[/PHP]