Mi Blog

No te olvides seguirme en Facebook.

Tan solo tienes que hacer click en Me Gusta

 

 

x

⇅ 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: raulprietofernandez.net

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

Escribir un comentario

     

Código de seguridad
Refescar

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 y la Politica de Privacidad.

  Si continúas navegando, aceptas su uso.