Copia de seguridad o Backup

Siempre y cuando nuestro hosting no nos ofrezca una buena herramienta de backup, el metodo mas simple y efectivo es crearnos nuestros propios archivos ejecutables.
En ellos indicaremos el nombre de archivo a crear y el origen del backup, ya sean archivos o una dase de datos (en este caso MySQL).

Los ejemplos más abajo presuponen que tenemos la siguiente estructura de directorios (o carpetas) :

/..
/httpdocs (los archivos de nuestro sitio web)
/backup (un directorio que crearemos nosotros)

Sistema Operativo : Estos scrips fueron escritos para el shell de Linux, por lo que no es aplicable a la familia de productos Microsoft.

Nota :
USER = Nombre de usuario de la Base de Datos
PASSWD = Contraseña para este usuario
BASEDEDATOS = Nombre de la Base de Datos

Script de backup de una DB MySQL

Que ejecuta este script?
Hace un 'dump' de la DB y guarda el resultado en un archivo donde el nombre del mismo contiene Año, Mes, Dia, Hora y Minuto más la extensión .sql
De este modo no solo quedaran legible sino ordenado dentro del directorio.

############################
### Backup base de datos ###
############################
# /bin/bash
date=`date -I`
mysqldump --opt -u USER --password="PASSWD" --add-drop-table BASEDEDATOS > /backup/bkpDrupal_xxx_`date +%Y-%m-%d_%H-%M`.sql
#

Script de backup de una DB MySQL con el agregado de una compactacion con bzip

Que ejecuta este script?
Hace un 'dump' de la DB, la compacta con bzip y guarda el resultado en un archivo donde el nombre del mismo contiene Año, Mes, Dia, Hora y Minuto más la extensión .bz2
De este modo no solo quedaran legible sino ordenado dentro del directorio y nos ahorra muchos MB.

###################################
### Backup base de datos + bzip ###
###################################
# /bin/bash
date=`date -I`
mysqldump --opt -u USER --password="PASSWD" --add-drop-table BASEDEDATOS | bzip2 -c > /backup/bkpDrupal_xxx_`date +%Y-%m-%d_%H-%M`.sql.bz2
#

Script de backup de archivos

Que ejecuta este script?
Hace un 'tar' con las opciones -czf (c= crea el archivo, z= lo comprime, f= le pone un nombre)
Entonces, como en los casos anteriores, obtendremos un archivo de backup con un nombre de fácil comprensión y archivado.

Que es un tar?
Tar es una aplicacion para archivar archivos/ficheros UNIX. ver : http://www.gnu.org/software/tar/tar.html
Nota : tar guardara la estructura de directorios y sus permisos.

#######################################
### Backup archivos + compresion gz ###
#######################################
# /bin/bash
tar -czf /backup/bkp_httpocs_`date +%Y-%m-%d_%H-%M`.tar.gz /httpdocs/. -R
#

Como automatizar este proceso con cron?

ir a : Cron y crontab

Comentarios

Como Ejecuto el Script

Esta bien redactado el post, pero tengo una sola duda como ejecuto ese script.

de antemano mil gracias.

Para excluir un directorio?

¿Y si quiero excluir un directorio de el archivo?