Copia de seguridad

De enunpimpam
Saltar a: navegación, buscar

Una de las cosas que necesitar cuando ocurre una catástrofe, son las copias de seguridad, aquellas que si no las tienes las echas en falta y si las tienes y no las necesitan te ocupan espacio.

Es importantisimo realizar copia de seguridad, de las bases de datos y de los archivos de la web.

Dependiendo del la actualización y el uso de los datos de la web, implementaremos una copia diaria, semanal o mensual.

Copia de Archivos

Todos los archivos que configuran la web están en el directorio /var/www asi que simplemente con comprimir y copiar dicho directorio tendremos un respaldo TOTAL.

Comprimir y copiar www

Realizaremos la copia en otro disco duro que estará montado en /media/copia

tar -czf /media/copia/copia-www.`date +%Y-%m-%d`.tar.gz /var/www

Copia de las Bases de Datos

Ahora toca realizar una copia total de todas las bases de datos que tenemos en el MySQL, para realizar esta operación utilizaremos la orden mysqldump con la variable --all-databases pero necesitamos los siguientes datos:

  1. Nombre de usuario: alumno
  1. Contraseña usuario: alumno
  1. Destino de la copia: /media/copia

Abrimos un terminal y escribimos:

mysqldump -uroot -palumno --all-databases > /media/copia/copiamysql.`date +%Y-%m-%d`.sql

Podemos comprobar que se generara un archivo copiamysql.Año-Mes-Dia.sql

Script copia.sh

Ya hemos realizado una copia total de los archivos web y una copia de todas las bases de datos, manualmente, lo interesante seria automatizar esta tarea, para ello realizaremos un pequeño script, abrimos un terminal y escribimos:

nano /home/usuario/copia.sh

Nota: Sustituir usuario por el nombre de vuestro usuario

#!/bin/sh
tar -czf /media/copia/copia-www.`date +%Y-%m-%d`.tar.gz /var/www
mysqldump -uroot -palumno --all-databases > /media/copia/copiamysql.`date +%Y-%m-%d`.sql

Ahora tenemos que asignar permisos de ejecución al script realizado, abrimos un terminal y escribimos:

sudo chmod +x copia.sh

Ejecutar Script

Para comprobar que todo esta bien podemos ejecutamos el script.

./copia.sh

Automatizar Copia

Para automatizar la copia de seguridad y se realice, el día y la hora que nosotros queremos, modificaremos el Cron

crontab -e

Queremos que la copia se realice todos los días a las 13:00 por lo tanto tendremos que añadir la siguiente linea al final del archivos crontab.

0 13 * * * /home/alumno/copia.sh

Reiniciamos cron

sudo /etc/init.d/cron restart