Copia de seguridad de un blog en WordPress

Posted: Julio 3rd, 2010 | Author: | Filed under: General | Tags: , , , , , , | No Comments »

Resulta conveniente realizar con regularidad una copia de seguridad de la información que tengamos en nuestro blog. Este backup deberíamos hacerlo como mínimo antes de una actualización importante del blog, por ejemplo antes de migrar de WordPress 2.x a la versión 3.

Hacer un backup de wordpress consiste en dos cosas:

  • Copiar los ficheros (imágenes, temas, …)
  • Copiar los artículos y configuraciones (la base de datos)

Existen algunos plugins que pueden ayudarnos en estas tareas, pero si no tienes tirria a la línea de comandos en este artículo se describe un método rápido y eficiente para hacer la copia. El único requisito es que nuestro proveedor de hosting nos proporcione acceso por ssh, que es lo más habitual. Para ahorrarnos meter la clave ssh cada vez que hagamos la copia podemos subirla al servidor en este artículo se explica como crearla y subirla pero en resumen consiste en ejecutar estos dos comandos (o sólo el segundo si ya tenemos una clave creada)

ssh-keygen -b 4096 -t rsa
ssh-copy-id usuario@servidor

El primer paso será hacer un volcado de la base de datos a un fichero en el servidor:

ssh usuario@servidor "mysqldump --opt --user=USUARIO_BD -p --host=URL_BD NOMBRE_BD > /ruta/fichero_a_guardar"

Por ejemplo

ssh fpuga@dreamhost.com "mysqldump --opt --user=fpuga_bd -p --host=localhost conocimientoabierto_bd_wordpress > conocimientoabierto/base_datos.sql"

La opción -p significa que nos preguntará cual es la clave de la base de datos por consola. Podemos indicarla directamente haciendo –pasword=CLAVE. Esto puede ser útil si metemos estas sentencias en un script pero deberiamos tener el script a buen recaudo para que no puedan ver nuestra clave.

El fichero sql donde se volcará la base de datos podríamos comprimirlo, pero con la estrategia que vamos a usar es mejor dejarlo en texto plano. El proceso de comprimir tiene un consumo elevado de cpu (algunos hosting limitan la cpu que se consume) y en el siguiente paso nos bajaremos el fichero por rsync.

rsync lo que hace es buscar las diferencias entre lo que tengamos en el servidor y lo que tengamos en nuestro disco duro, y sólo se baja lo que varíe. Si hubiéramos comprimido en el paso anterior la base de datos tendría que bajarse el fichero entero pero al estar en formato texto se bajará sólo la diferencia lo que resulta óptimo tanto en gasto de cpu como en ancho de banda consumida. La copia de los ficheros del servidor a nuestro disco duro, consistirá entonces en ejecutar:

 rsync -av --delete usuario@servidor:ruta_remota $RUTA_LOCAL

por ejemplo:

rsync -av --delete fpuga@dreamhost.com:conocimientoabierto/ /home/fpuga/backup/conocimientoabierto

La opción delete hace que se borren los archivos locales que ya han sido borrados del servidor remoto. Puede ser peligrosa así que cuidado. La ruta local donde se copien los archivos debe existir previamente. Fijaos en que cuando se pone la ruta remota después de los dos puntos no se inicia con / porque sólo queremos indicar una ruta relativa.

Por último borraremos del servidor el fichero de volcado de la base de datos

ssh usuario@servidor "rm /ruta/fichero_a_guardar"

Y para no teclear tanto podemos crearnos un script muy sencillito. Llega con que cambies los valores de las variables por los de tu servidor.

Antes de escribir el script estuve leyendo sobre algunos plugins pero ninguno se adaptaba a mis necesidades, de todas formas estas referencias puede venirte bien si prefieres usar otro sistema:


Sincronizar el perfil o los marcadores de Firefox mediante dropbox

Posted: Marzo 26th, 2010 | Author: | Filed under: General | Tags: , , , , , , | 1 Comment »

Cuando de manera habitual usas más de un ordenador mantener la misma configuración en ambos acaba siendo problemático. Una de las cosas que más echo de menos desde que he dejado de usar mi portátil personal en el trabajo es poder sincronizar los marcadores de Firefox.

En el cielo o en la tierra

Tal y como yo lo veo hay dos clasificaciones en las que se podrían englobar los métodos para la sincronización:

  • Usar un servicio web como delicious pensado para trabajar exclusivamente con los marcadores.
  • Usar alguna herramienta de sincronización de ficheros como DropBox.

El depender en exclusiva de un servicio web no es una opción que me tiente demasiado, así que no hablaremos de ella. DropBox en cambio, es una mezcla de servicio web y rsync sencillo, donde los ficheros no sólo se guardan en un servidor externo si no también en el nuestro, de modo que podemos abandonarlo cuando queramos a coste casi cero, de hecho, montar un sistema casero que substituya a DropBox no es muy complicado.

Diferentes implementaciones con Dropbox

Decidido que usaremos DropBox tenemos varias formas concretas de implementar el sistema:

La última me parece la mejor porque nos ahorramos el crear un nuevo perfil, simplemente movemos su ubicación y usamos herramientas propias de firefox para colocar el directorio del perfil dentro de DropBox en lugar del truquillo de los enlaces simbólicos.

Decidido el método, los pasos previos

En todo caso antes de usar uno de estos tres métodos deberías:

  1. Hacer una copia de seguridad de tu perfil
  2. Modificar donde se guarda la cache del navegador. La cache son un montón de archivitos que se guardan mientras navegas para acceder más rápido a páginas ya visitadas, que no tienen ningún interés para la sincronización y que sólo te harán perder ancho de banda y cpu si intentas sincronizarlos. Para cambiar la ubicación, abre firefox y teclea about:config en la barra de direcciones. A continuación busca la clave browser.cache.disk.parent_directory. Si no existe créala como de tipo “cadena”. El valor que debe contener es el nuevo directorio que usará como cache, asegúrate de que existe en todos los ordenadores que vayas a usar, yo uso /var/tmp. Cierra el navegador , borra el directorio Cache dentro de tu perfil y vuelve a abrir el navegador. Asegúrate de que en /tmp se ha creado un nuevo directorio Cache.

Mi método casi-preferido

Hecha la preconfiguración podríamos hacer lo que se dice por ejemplo en robzand:

  1. Copia el directorio que contiene tu perfil a DropBox
  2. Edita el fichero profile.ini (está en la misma carpeta que tu directorio de perfil). Pon un cero en IsRelative, y en Path pon la ruta completa a tu perfil dentro de DropBox, que seguramente será algo como /home/[tu_usuario]/DropBox/4f45s.default
  3. Espera a que sincronice, abre el navegador y comprueba que todo funciona correctamente.
  4. Ve a otro pc y espera a que sincronice. Edita el fichero profile.ini, pon un cero en IsRelative y pon en Path la ruta al perfil que acaba de ser sincronizado. (Ten en cuenta que a no ser que tengas el mismo nombre de usuario en ambos ordenadores la ruta será distinta)

Los incovenientes

Al compartir el perfil también se comparten:

  • Las extensiones. Si usas diferentes versiones de firefox puede que alguna de las extensiones te de problemas.
  • Las cookies y las claves. Las cookies permiten que las páginas web te recuerden de modo que no tengas que escribir tu contraseña cada vez que entras. Si almacenamos tanto las cookies como las claves en un servicio externo como DropBox y alguien lo crackea, toda nuestra vida en la red será vulnerable.
  • Cada vez que abras una página el contenido de tu perfil cambia, con lo que dropbox empezará a sincronizar, y habrá un gasto elevado de cpu y ancho de banda.

Estos problemas nos llevan a reflexionar si la comodidad que tiene el perfil compartido compensa el riesgo o a preguntarnos si realmente necesitamos compartir todo el perfil, o nos llega con los marcadores.

Mi método preferido

Por tanto, si lo único que quieres es compartir los marcadores, que es en general lo mejor desde mi punto de vista, lo único que hay que hacer es:

  1. Mover el archivo places.sqlite dentro del perfil de tu ordenador principal a DropBox
  2. Crear un enlace simbólico desde el archivo en DropBox a tu perfil. El comando sería algo así:
    ln -s [ruta a places.sqlite dentro de dropbox] $HOME/.mozilla/firefox//places.sqlite
  3. Esperar a que sincronice y abrir firefox para comprobar que todo es correcto
  4. En el resto de ordenadores borrar el archivo places.sqlite de dentro del perfil y hacer el enlace simbólico desde el que está en Dropbox.