He seguido jugando para ver hasta donde puede llegar este pequeño ordenador de poco más de 30€, la Raspberry Pi. Una joya de la informática, que junto a Syncthing, otra joya de la informática, hacen una combinación explosiva. Así que aquí estoy escribiendo éste HOWTO sobre servidores para montar una nube de terabytes de almacenamiento sincronizado y privado en tu propia casa, local o en varios lugares remotos.
Sólo por el coste de tus PCs, sin pagar nada a una empresa, sin que tus datos estén copiados en ordenadores que no son tuyos, y sin que tus datos estén copiados en el extranjero. Es decir, tus datos ya no tendrán que estar almacenados en ningún servidor externo en ninguna empresa. Todo sincronizado entre tus móviles, ordenadores y la Raspberry Pi. Además, podrás disfrutar de tantos terabytes como quieras sin coste mensual, sólo necesitas tener los discos externos que quieras y la Raspberry Pi encendida.
El software de gestión de servidores te puede automatizar esta y otras tareas. Pero si estas haciendo artesanalmente un servidor, para no gastar ni un bit innecesariamente en correr software de gestión de servidores, tendrás que automatizar esta tarea: el hacer copias de seguridad de la base de datos.
Sí, más vale prevenir que curar. Da por hecho que tarde o temprano los sistemas se rompen, así que más te vale haberte prevenido y tener una copia de seguridad por si acaso. Como me ha llevado un rato buscar entre los foros para construir esto, aquí que lo dejo por si a algún ubuntero le sirve.
Creando el script
Le idea es crear un sencillo Shell Script que automatice la copia de seguridad. Así que creo el fichero /home/ubuntu/backup.db.sh siguiente:
Este script hace 2 cosas. La primera es sacar una copia de la BD y la comprime a un fichero .gz. Lo segundo es que revisa si hay ficheros .gz de más de 30 días en el directorio de copias de seguridad, borrándolos.
Creando carpeta que almacenará los ficheros
De esta manera necesitaremos crear el directorio para alojar las copias de seguridad:
$ mkdir /home/ubuntu/backups/
Permisos de ejecución del script
Para poder ejecutar este script tendremos que darle permisos de ejecución así:
$ chmod +x /home/ubuntu/backup.db.sh
Ejecutando el script cada día
Sólo falta ejecutar este script cada día. Para esto ejecutamos desde el usuario ubuntu lo siguiente:
$ crontab -e
Nos saldrá una pantalla en donde podemos editar cada tarea programada. Cada línea de este fichero es una tarea programada. Así que tenemos que añadir aquí esta línea:
Guardamos y salimos del editor. Con esto ya se ejecutará dicho Shell Script cada noche a las 2:00 AM, dejando registro en el fichero backup.db.lastLog.
Terminando
Sólo me queda añadir que quizá quieres añadir a lo anterior una copia de ficheros. Para esto no tienes más que añadir en el script las líneas que te hagan dicha copia de ficheros. Puedes probar el script en cualquier momento así desde línea de comandos, como si fuera un .bat:
Una de las tareas de servidor más comunes, o lo debería ser, es la copia de seguridad de los archivos. Si no queremos tener más problemas que los necesarios nos conviene tener una copia. Así que aquí estoy de nuevo escribiendo sobre Virtualmin, este gran proyecto Open Source que nos brinda una brillante interfaz de usuario web. Traigo un pequeño HOWTO para programar las copias de seguridad con este software.
Una de las alternativas de almacenamiento en la nube más prometedoras es Mega. Proviene de la antigua Megaupload, de la mano de Kit Dotcom, fundador de Megaupload. Lo pusieron en marcha Kim junto a su equipo de trabajo, parece que como respuesta al cierre y confiscado de Megaupload debido a la piratería. Mega puede parecer algo novedoso, sin embargo, no es más que el mismo sistema de almacenamiento en la nube de archivos pero mucho más elaborado que el anterior. Salió al mercado hace ya cuatro años, en el 2013. Fue tanta la expectativa que hubo millones de usuarios que se registraron en muy poco tiempo hasta colapsar sus servidores. A día de hoy Kim Dotcom se ha desvinculado del proyecto, y navegando un poco puedo leer reseñas que hablan que hay alrededor de 50 millones de usuarios registrados en Mega.
Sus principales bazas en el mercado del almacenamiento en la nube han sido dos: los famosos 50 Gigas gratis, y su esfuerzo por la privacidad de los usuarios.
En estos días he estado haciendo una copia de seguridad de una base de datos compatible con MySQL. En concreto de MariaDB, un ‘replace’ que funciona muy pero que muy bien. Para éste ejemplo he usado un servidor Linux, supongo que en otros sistemas operativos también tendremos disponibles estos comandos.
MariaDB es un fork de la conocida base de datos MySQL que ha seguido más y más desarrollándose e incorporando más y más funcionalidades.
Vamos al grano, es sencillo exportar a un fichero SQL desde línea de comandos con un comando como el siguiente: $ mysqldump nombreBaseDeDatos -uuser -ppassword > nombreFichero.sql
Lo que hay después de -u es un nombre de usuario, después de -p la contraseña, debe ser un usuario y contraseña válidos y que tengan permiso de acceso a toda la base de datos.
Si queremos hacer pruebas antes de guardar a un fichero el contenido podemos omitir lo último del comando para ver lo que hay en la BD.
$ mysqldump nombreBaseDeDatos -uuser -ppassword
A continuación, si queremos importar el fichero SQL ejecutamos lo siguiente en línea de comandos:
$ mysql nombreBaseDeDatos -uuser -ppassword < nombreFichero.sql
Resulta que si tienes un servidor Linux, ya sea dedicado o virtual. Puede ser que no tengas una copia de seguridad automatizada de tus principales archivos. Los proveedores de servidores suelen ofrecer este servicio aparte cuando contratas un servidor. También puede ser que quieras automatizarlo en un ordenador local de ésta forma. Aquí les dejo un script simplificado por si les sirve de ayuda:
### FICHERO PARA AUTOMATIZAR LA COPIA DE SEGURIDAD ### DE TODOS LOS DATOS DEL SERVIDOR FECHA=$(date +%Y%m%d%H%M%S) # COPIA A FICHERO DE LA BD mysqldump nombreBD -uusuario -ppassword > backups/nombreBD.temp.sql tar -cvzf backups/nombreBD.${FECHA}.tar.gz backups/nombreBD.temp.sql rm backups/nombreBD.temp.sql # BD otras bds.. # copia incremental en el directorio de copia # ojo! la primera vez hay que poner ‘full’ en vez de ‘incremental’ para preparar la primera copia duplicity incremental –encrypt-key «password» –volsize 100 –no-encryption /home/ubuntu file:///home/ubuntu.backup/ –exclude /home/ubuntu/undirectoriodecache/ # borra historial de archivos antiguos duplicity remove-older-than 60D file:///home/ubuntu.backup/ # limpia copias incompletas o mal realizadas duplicity –no-encryption cleanup file:///home/ubuntu.backup/
Suponiendo que nuestro usuario se llama ‘ubuntu’ y estamos en el directorio del usuario (/home/ubuntu/). Este script se puede guardar en un fichero, por ejemplo: copiarTodo.sh Le damos permiso de ejecución con:
$ chmod +x copiarTodo.sh
Así podremos probarlo antes de programar su ejecución periódica. Ejecutamos: $ ./copiarTodo.sh
..y vemos los resultados, es decir, vemos el directorio de salida de los ficheros generados:
/home/ubuntu/backups/ es el directorio donde se copian los datos de la base de datos compatible con MySQL.
/home/ubuntu.backup/ es el directorio de salida de Duplicity.
Para terminar falta programar la ejecución de dicho script. Para ello ejecutamos lo siguiente:
$ crontab -e
…y añadimos lo siguiente para una ejecución semanal por ejemplo el domingo a las tres y cuarto de la madrugada:
15 3 * * 0 ~/copiarTodo.sh > ~/copiarTodo.log
mysqldump
A saber, por si acaso no lo conocen, este es el comando de Linux que desde terminal permite extraer de una base de datos compatible con MySQL todos los datos y guardarlos en un fichero.
duplicity
Este programa es el que se utilizar para hacer copias de seguridad en Ubuntu. Por debajo del sistema de copias que viene instalado llamado Deja-dup, tenemos dicho Duplicity. Como es una aplicación de línea de comandos lo que tenemos en el entorno de escritorio es una interfaz de usuario a dicho programa.
Duplicity permite hacer copias incrementales. Es decir, después de una primera copia total de todos los archivos, permite en las siguientes sólo copiar los ficheros en los que ha habido cambios. Además las copias se empaquetan en ficheros de cierto tamaño, cifrados y protegidos con contraseña. Incluso se pueden enviar automáticamente a un servidor de ficheros FTP, por ejemplo.
Me remito a la documentación oficial para más información.
Mega con sus 50 Gigas gratis y con la buena calidad de su servicio, vemos que gana puntos en la competición por liderar el almacenamiento en la nube. Reciéntemente, el pasado viernes 6 de noviembre del 2013 ha salido de su fase de pruebas, con una interfaz renovada y algunas nuevas características. En los últimos años estamos viendo como el almacenamiento de los discos duros es mayor y cada vez son más baratos. En Internet los espacios para correos electrónicos, páginas web, o los servicios de almacenamiento en la nube estan creciendo. Drive que nos ofrece 15 Gigas gratis junto con la cuenta de Gmail para correos electrónicos. Dropbox con 2 Gigas iniciales gratis que vas incrementando realizando ciertas tareas. Skydrive de Microsoft con sus 25 Gigas. Y un largo etcétera..
Un poco de historia
Mega nace de la mano del polémico Kim Dotcom. Un año después del cierre de Megaupload nació Mega.co.nz, ofreciendo su servicio de almacenamiento en la nube. En la primera hora de su lanzamiento en enero del 2013 se registraron alrededor de 100 000 personas, en el primer días más de 1 millón, fué tal el éxito que se llegó a colapsar el servicio. Pero los usuarios han sido conscientes del éxito que tuvo su predecesor, Megaupload, que han sido pacientes y en foros varios se pueden leer buenas referencias al respecto.
Características principales
Analicemos las principales características técnicas de la cuenta gratuita:
– Tenemos disponibles 50 gigas, que podemos usar con todo tipo de archivos en tamaños y en número.
– Siempre todo el servicio se ofrece a través de conexiones HTTPS, es decir, conexiones cifradas. Incluso las transferencias de archivos entre nosotros y Mega se realizan a través de HTTPS. – Podemos compartir con quien queramos nuestros ficheros haciendo enlaces que podemos enviar a amigos o a quien consideremos.
– Se ha optimizado al máximo la página web, ofreciendo un servicio ágil donde podemos coger y soltar archivos, renombrarlos, moverlos de carpeta, etcétera.
– Sistema por el que se guardan archivos temporales en nuestro ordenador para agilizar su funcionamiento.
– Podemos usar avatares con nuestros contactos.
– Compartir archivos con nuestros contactos.
– Un árbol de directorios mejorado.
– Ahora podemos seguir subiendo o bajando ficheros mientras que navegamos por las secciones. – Firefox, está tomando la delantera en compatibilidad y prestaciones.
Todo ésto sin instalar nada en nuestro ordenador, sólo con un registrarnos podremos acceder desde cualquier dispositivo que tenga navegador o con sus aplicaciones a los servicios de Mega.
Otras características
Aún en fase beta, tenemos un cliente de sincronización de archivos para Windows, que permite establecer incluso varias carpetas individuales para que se mantengan iguales tanto en la nube como en tu ordenador. En Google Play tenemos una aplicación para sincronizar ficheros entre nuestro Tablet o Smartphone y Mega.
También tenemos disponible el Kit de Desarrollo para crear programas usando su almacenamiento. Mega está cogiendo fuerza con sus políticas empresariales y está dejando atrás su modelo de negocio de Megaupload. Hay programas para trabajar como distribuidor de cuentas pro. Sus versiones de pago parten de casi 100 € al año por 500 Gigas a los casi 300 € al año por 4 Teras, con anchos de banda muy generosos.
Con las pruebas de la cuenta gratuita se ve que el servicio es muy bueno. Las descargas y subidas a la nube son al máximo que nos permite la red.
Después de las polémicas noticias que corren sobre la privacidad en Internet con respecto al ciber-espionaje por parte EEUU y otros organismos internacionales, la población estamos más conscientes de todo ello. Mega no es que tenga un sistema 100% seguro. Decir eso sería como asegurar que es imposible que te caiga un rayo: si nos ponemos a correr con una bateria conectada a una antena en una noche de tormenta eléctrica por una montaña tenemos muchos puntos para conseguir que nos caiga. De todos modos hay que tener en cuenta que los servidores de Mega están montados en Nueva Zelanda, con sus propias leyes. Y los usuarios siempre seremos los últimos responsables de lo que hagamos con nuestros actos, dentro o fuera de Internet.
Después de los casos de acceso a tus archivos por parte de las empresas (por ejemplo Microsoft que revisa tus archivos automáticamente, Google con sus anuncios relacionados..), Mega se ha curado en salud haciendo muy complicado que ellos mismos puedan acceder a tus archivos. Pero no vamos a entrar en temas criptográficos o ciberseguridad porque no es objetivo de éste artículo.
El futuro próximo
Para antes de terminar el año 2013, se prevee el lanzamiento de la aplicación para iOS y que salga de la fase de pruebas el cliente de sincronización https://mega.co.nz/#sync. En 2014 se espera el lanzamiento de un sistema de mensajería y videoconferencia cifrado y basado en la web.
Lento pero a buen ritmo Mega va sorprendiéndonos con la calidad de sus servicios: buen diseño, usabilidad, servicios innovadores.. Hemos leido sobre la venta de música, películas, podríamos especular sobre las posibilidades de los servicios en la nube. Si hay algo claro, es que en Informática si algo que se pueda pensar, normalmente se puede crear, otro asunto es que merezca la pena invertir tiempo en ello o si la ley lo permite.
Resumiendo
Para terminar queda decir que Mega es un servicio como los otros de que ya disponemos, pero que en las pruebas realizadas ha funcionado muy bien, y tiene precios muy económicos en sus versiones de pago. Seguro que Mega seguirá sorprendiéndonos. Y a fecha de hoy, un servidor que les escribe piensa que Mega con sus servicios está ‘tirando del carro’, motivando a que los grandes competidores como Google, Microsoft, Dropbox.. se pongan las pilas y mejoren sus servicios. Al fin y al cabo, todo ésto es bueno y los beneficiados vamos a ser los usuarios, ya seamos clientes gratuitos o de pago.