Ingenieros… ¿ lo lograremos ?

La dura vida de un estudiante de telecomunicaciones

Poniendo a salvo nuestro blog…

El mayor problema que puede surgir a la hora de mantener un blog es que el día menos pensado tengas un problema con el servidor y todo el “trabajo” que has realizado durante tanto tiempo, y todos esos comentarios que te ha costado recibir desaparezcan en un instante. Hace poco (o mucho, para mí el tiempo es bastante relativo :D ) encontré un sencillo artículo para realizar esta tarea: How-To: Back-up your blog. Para ello es necesario:

  • Un blog (también valen páginas web ;) )
  • Acceso a través de SSH a nuestro servidor.
  • El ordenador donde guardar la copia (En primer lugar lo contaré para Linux, luego para mis queridos windowseros :P )
  • Acceso a internet.

La verdad es que excepto la dos el resto como que son un poco lógicas.

1. Haciendo la copia de seguridad de nuestro blog por primera vez

En primer lugar, es necesario comprobar si tenemos una serie de herramientas; para ello utilizaremos el comando which, el cúal nos dirá si existe el programa introducido como argumento. Por tanto, realizamos la siguientes consultas, produciéndose los resultados que observáis:

onir@neo:~$ which crontab
/usr/bin/crontab
onir@neo:~$ which rsync
/usr/bin/rsync
onir@neo:~$ which ssh
/usr/bin/ssh

Si alguna de ellas no produjera ningún resultado (algo raro ya que vienen incluidas generalmente por defecto en la mayoría de las distribuciones), deberemos instalarlas mediante el uso de aptitude o apt-get:

aptitude install rsync cron openssh-client
apt-get install rsync cron openssh-client

Lo siguiente es preparar un script que se encargará de hacer el backup ahorrándonos el trabajo de escribirlo cada vez:

#!/bin/bash

rsync -v -a -e ssh \
tuusuario@tudominio.com:/tu/directorio/a/guardar/ \
/tu/directorio/donde/guardar

Con el comando rsync le indicaremos que se concecte mediante ssh con ese nombre de usuario y al directorio indicado para que posteriormente lo copie en el que se le indica a continuación. Finalmente, lo guardamos con el nombre que queramos y le damos permisos de ejecución. Si lo ejecutáis, veréis como se empiezan a copiar los archivos hasta que finalice con algo parecido a esto:

sent 22514 bytes received 18711987 bytes 107361.04 bytes/sec
total size is 18635532 speedup is 0.99

2. Haciendo la copia de seguridad de nuestra base de datos

La forma de realizar la copia de seguridad de nuestra base de datos será muy parecida al empleado en el apartado anterior aunque se modificarán los comandos a introducir en el script.

#!/bin/bash

mysqldump -h hostDeLaBaseDeDatos \
nombreDeLaBaseDeDatos -u usuario -pcontraseña \
> /lugar/donde/se/guardará/mysqlbackup.sql

Lo guardamos con el nombre que queramos y le damos los permisos de ejecucción igual que antes. Finalmente lo ejecutamos y comprobamos que funciona :)

3. Programando la copia de seguridad de forma periódica mediante cron

La mayoría de las veces sólo nos acordamos de las copias de seguridad cuando ya hemos perdido toda la información, por ello, la forma más sencilla de olvidarse de ellas es programando las copias de seguridad. Para ello emplearemos la herramienta cron. Para añadir una nueva tarea ejecutaremos crontab -e, la estructura del documento es la siguiente:

minutos horas dia mes diadelasemana comando

Por lo tanto, fijaremos que la base de datos se copie cada semana (no tengo la suficiente actividad como para que se pierda mucho contenido en siete días) y para que el blog se copie cada mes (generalmente no se modifica mucho salvo añadir algún plugin o editar algún archivo) Añadimos entonces estas dos líneas:

* * 1 * * /media/datos/blog-backup/backup-blog
* * * * 7 /media/datos/blog-backup/backup-mysql

El blog se guardará todos los días uno y la base de datos todos los domingos :)

- Más info:

p.D: Me he enrollado demasiado, sobre Windows lo explico la próxima vez :(

Hay 5 comentarios

  1. June 16th, 2006

    | 11:57 pm

    Yo suelo hacer backups manuales de la base de datos cada semana y del theme cada vez que cambio algo.

    Pero gracias a este post me he dado cuenta de que llevaba más de un mes sin hacer backup. Thanks!.

  2. June 17th, 2006

    | 12:09 am

    Yo he intentado realizarlo a mano pero por ajos o por cebollas siempre se me olvida y hacía ya más de un mes y medio que no lo había hecho :)

    De nada!!

  3. May 10th, 2007

    | 9:26 pm

    [...] Haciendo uso de un post que publiqué ya hace tiempo (por eso los escribo, sino se me olvidarían y así de paso le sirven a otras personas se me ocurrió montar un sistema de sincronización de archivos entre el servidor de Dreamhost y mis dos ordenadores mediante un script de consola. Para ello, he hecho uso de rsync, un programa de consola que permite sincronizar archivos y directorios entre dos máquinas de una red o entre dos ubicaciones en una misma máquina, minimizando el volumen de datos transferidos. [...]

  4. May 20th, 2007

    | 6:01 pm

    Oye hiciste el post al final para windows? En el archivo de que mes está? Gracias..

  5. May 21st, 2007

    | 11:35 pm

    [...] Tras haber explicado como hacerlo en Linux ahora le toca a Windows (para que nadie se sienta discriminado ). En primer lugar, será necesario descargar una pequeña herramienta llamada Cygwin, un emulador de la consola que podemos utilizar en Linux pero para windows. Para descargarlo vamos a la página web de Cygwin y en la parte derecha aparece un enlace para descargarlo. [...]

Deja una respuesta