• Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.
Mi Blog
⇅ Backups automáticos de tu Web y BBDD

⇅ Backups automáticos de tu Web y BBDD

Todo informático con un amplio bagaje sabrá que, lo realmente importante son los datos. ¿Quién no ha tenido alguna vez algún susto perdiendo información? Los nervios por saber si se han borrado pueden evitarse teniendo un buen/simple sistema de backups.

Una de las primeras cosas que hago cuando cambio de hosting o contrato uno nuevo, es crear mi propio sistema de Backups independiente del que pueda tener el propio proveedor de Hosting. Voy a enseñaros como crear un sencillo sistema de Backups para vuestras páginas webs.


El script (o con pequeñas modificaciones) permite lo siguiente:

  • Realizar un backup del Website principal.
  • Realizar Backups páginas alojadas en sub-directorios.
  • Realizar backups de las bases de datos de forma individualizada.
  • Borrado de backups de ficheros cada X días.
  • Borrado de backups de BBDD cada X días.
  • Excluir directorios de realizar el backup.

#!/bin/bash
#
# Script realizado por Raul Prieto Fernandez
#
# email: Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.
# INICIO VARIABLES
DATE=`date +%Y-%m-%d-%H-%M`
# FIN VARIABLES

# Entramos en el $HOME
cd $HOME

########### PORTFOLIO PERSONAL. EXCLUYO LOS OTROS DOMINIOS
mysqldump --opt -h HOST_MYSQL -u USUARIO_MYSQL -pPASSWORD_MYSQL NOMBRE_BBDD > backup_rpf_$DATE.sql tar zcp * .htaccess --exclude=BACKUPS --exclude=freshcamps --exclude=logs > BACKUPS/raulprietofernandez_$DATE.tgz

# Borramos el Backup SQL Temporal
rm -f backup_rpf_$DATE.sql

# Borramos los Backups mas viejos de 15 dias
for delete_rpf in `find /kunden/homepages/46/d540002551/htdocs/BACKUPS/raulprietofernandez*.tgz -mtime +15`; do rm -f $delete_rpf; done

########### PÁGINA WEB FRESHCAMPS
mysqldump --opt -h HOST_MYSQL -u USUARIO_MYSQL -pPASSWORD_MYSQL NOMBRE_BBDD > freshcamps/backup_fresh_$DATE.sql tar zcp freshcamps/ * > BACKUPS/freshcamps/freshcamps_$DATE.tgz

# Borramos el Backup SQL Temporal
rm -f freshcamps/backup_fresh_$DATE.sql
# Borramos los Backups mas viejos de 30 dias
for delete_fresh in `find /kunden/homepages/46/d540002551/htdocs/BACKUPS/freshcamps/freshcamps*.tgz -mtime +30`; do rm -f $delete_fresh; done

Las variables a tener en cuenta son:

  • HOST_MYSQL = host donde está la base de datos
  • USUARIO_MYSQL = usuario con permisos para acceder a la base de datos
  • PASSWORD_MYSQL = contraseña del usuario
  • NOMBRE_BBDD = nombre de la base de datos
  • BACKUPS = Directorio BACKUPS debe existir previamente, ya que es donde se guardarán los backups
  • BACKUPS/freshcamps/ = Directorio BACKUPS/freshcamps debe existir previamente, ya que es donde se gaurdarán los backups del segundo dominio
  • /kunden/homepages/46/d540002551/htdocs/ = Path completo al $HOME de los documentos html (root path)

Será necesario meter el script en un fichero en el $HOME ó root de los documentos html, y generar una tarea de Crontab que haga una copia cada día. El fichero deberá tener permisos de ejecución, en mi caso se llama full_backups.sh y el permisos de ejecución se hace con "chmod +x full_backups.sh". Los permisos se pueden dar desde un cliente FTP. Con permisos 755 debería de valer, si no funciona, dadle 777 (rwxrwxrwx)

Lo siguiente será meterlo en el CRONTAB, ejecutaremos un backup todos los días a las 23:55. Para ello, editaremos las tareas con "crontab -l" (ó desde el panel de control del hosting) y añadiremos la siguiente linea:
55 23 * * * /kunden/homepages/46/d540002551/htdocs/full_backup.sh ( modifica tu PATH y el nombre del fichero )

El Script hace una copia completa de fichero y bases de datos.

Backup automático

Cualquier duda, problema o sugerencia, comentadlo.

ENJOY!


Raúl Prieto Fernández

Sitio Web: /

Si quieres ir rápido, ve solo. Si quieres llegar lejos, ve acompañado.

Escribir un comentario

Información básica sobre Protección de Datos

Responsable: Raúl Prieto Fernández +info

Finalidad: Moderar los comentarios a los artículos publicados en el blog. +info

Legitimación: Consentimiento del interesado +info

Destinatarios: No se comunicarán datos a persona u organización alguna. +info +info

Derechos: Tiene derecho a Acceder, rectificar y suprimir los datos, así como otros derechos, como se explica en la información adicional. +info

Plazo de conservación de los datos: Hasta que no se solicite su supresión por el interesado.

Información adicional: Puede consultar la información adicional y detallada sobre Protección de Datos Personales en mi página web raulprietofernandez.net +info

Código de seguridad
Refescar


LOGIN / ENTRAR

BUSCAR EN EL BLOG

TWITTER TIMELINE

Booking.com

ENCUESTA

¿Cual es el mejor Sistema Operativo?

Como es lógico, esta web utiliza cookies propias y de terceros para elaborar información estadística y mostrar publicidad personalizada a través del análisis de tu navegación, conforme a la política de cookies.

  Si continúas navegando, aceptas su uso.