Mega backup automatizado.

Mega Backup script

Me imagino que todos conocéis Mega, el nuevo servicio de Kim Dotcom el antiguo responsable de MEGAUPLOAD. Este servicio es interesante por varias razones, la principal de ellas es que ofrece 50 GB de forma gratuita a cualquier usuario, otra razón menos conocida es que tiene unas herramientas de línea de comandos muy potentes para la sincronizan de directorios con la nube.

En este artículo os voy a mostrar como podemos realizar copias de seguridad automatizadas de algunas carpetas de tu sistema GNU/Linux en la nube de Mega. Creara una copia de tus archivos sincronizando solo los archivos nuevos en cada copia.

Preparando lo necesario para mega backup.

La cuenta de Mega

Lo primero que necesitamos es una cuenta de mega yo voy a utilizar una cuenta con los siguientes datos.

  • Usuario: mega@aplicacionesysistemas.com
  • Password: LaPasswordDeMega

Carpetas a salvar

Yo en el ejemplo realizo el backup a Mega de las siguientes carpetas.

/home/nacho/Imágenes
/home/nacho/Documentos

Carpetas destino en Mega

Las carpetas destino para el mega backup han de estar previamente creadas en Mega para hacerlo yo lo hago desde la pagina web que me resulta mas sencillo.

imagenes
documentos

Las megatools

Son las herramientas que nos ofrece mega para manejar la nube de mega desde la linea de comandos.
Para instalarlas ejecutaremos los siguientes comandos.

Ubuntu y deribados

sudo add-apt-repository ppa:megous/ppa
sudo apt-get update
sudo apt-get install megatools

Para los usuarios de ubuntu 14.04 tenéis que editar una linea en el archivo sources.list ya que el proyecto esta abandonado y no hay versión para trusty aun así la versión de precise funciona bien.

sudo nano /etc/apt/sources.list

Editamos las lineas que ponen

deb http://ppa.launchpad.net/megous/ppa/ubuntu trusty main
deb-src http://ppa.launchpad.net/megous/ppa/ubuntu trusty main

y lo dejamos de la siguiente manera

deb http://ppa.launchpad.net/megous/ppa/ubuntu precise main
deb-src http://ppa.launchpad.net/megous/ppa/ubuntu precise main

Pulsamos Control + X para salir de nano y le decimos que sí queremos guardar. Gracias a Imanol, Manolo y Xembi por indicar el problema y como resolverlo.

Resto de distribuciones

Para el resto de distribuciones lo mejor es ir a la página de megous donde podéis descargar los binarios para vuestra distribución.

El archivo .megarc

Para que las megatools conozcan la cuenta donde realizas la copia de seguridad se crea el archivo .megarc en la carpeta raiz del usuario que va ha realizar la copia de seguridad, si es el usuario root lo crearemos en /root si es usuario lo crearemos en /home/usuario yo lo voy a poner en la carpeta de mi usuario.

touch /home/nacho/.megarc

Editaremos el archivo para que quede con la siguiente estructura. Cambia el usuario y la password por los tuyos.

nano /home/nacho/.megarc

Y ponemos el siguiente texto en el archivo. Recuerda cambiar el usuario y la password por los tuyos.

[Login] 
Username = mega@aplicacionesysistemas.com
Password = LaPasswordDeMega

Pulsamos Control + X para salir de nano y le decimos que si queremos guardar.

El archivo de log para comprobar las copias.

Creamos un archivo de log para comprobar cuando se realiza el mega backup.

touch /home/nacho/logmega

EL script  megabackup

Para configurar las cosas que queremos salvar crearemos un script de bash llamado megabackup , tu créalo en la carpeta del usuario que vas ha utilizar.

touch /home/nacho/megabackup

Editaremos el archivo poniendo el siguiente código modificando a tu gusto las carpetas a salvar de origen y las carpetas destino.

Lee el script esta comentado para que no tengas problemas para entenderlo.

#!/bin/bash
# MEGA BACKUP
# 
# :: Dependencias : megatools
##### VARIABLES ######
# Carpeta de origen1 de los datos en local
loc1=/home/nacho/Imágenes/ 
# Carpeta destino de los datos de origen1 en remoto tiene que estar previamente
# creada en mega puedes crearla desde la web de mega.
remot1=/Root/imagenes 
# Si quieres salvar mas carpetas creamos mas origenes y mas destinos. 
loc2=/home/nacho/Documentos # Carpeta origen2 local
remot2=/Root/documentos # Carpeta destino2 en mega tiene que estar creada previamente.

# Almacenamos en el log la hora de comienzo de la copia de seguridad
echo "Comenzando copia de seguridad ($(date))" >> /home/nacho/logmega

### Inicio Copia primer origen (esta parte la repetiremos con todos las carpetas que queramos copiar en mega
##########################################
# Sincronizando con mega de las imagenes
echo "Comenzando copia de seguridad de las imagenes" # mensaje en pantalla
megasync --local $loc1 --remote $remot1 # Sincronizamos la carpeta
# mensaje en pantalla para saber que acabo de sincronizar la primera carpeta
echo "*****************************************************"
echo "*****************************************************"
echo "*****************************************************"
echo "*****************************************************"
echo "*****************************************************"
echo "Sincronizacion de las Imágenes con mega backup realizada"
echo "*****************************************************"
echo "*****************************************************"
echo "*****************************************************"
echo "*****************************************************"
echo "*****************************************************"
### Fin de la copia de seguridad de la primera carpeta
##########################################

##########################################
### Inicio de la copia del segundo origen
echo "Comenzando copia de seguridad de Documentos"
megasync --local $loc2 --remote $remot2
# mensaje en pantalla para saber que acabo de sincronizar la segunda carpeta
echo "*****************************************************"
echo "*****************************************************"
echo "*****************************************************"
echo "*****************************************************"
echo "*****************************************************"
echo "Sincronización de Documentos con mega backup realizada"
echo "*****************************************************"
echo "*****************************************************"
echo "*****************************************************"
echo "*****************************************************"
echo "*****************************************************"
### Fin de la copia de seguridad de la segunda carpeta
##########################################

##########################################
### Ahora volcamos al log los mensajes de salida
echo "Espera unos segundos ......" # mensaje en pantala esto tarda un poco
libre="$(megadf |grep Free)" # averiguamos el espacio libre en mega
ocu="$(megadf |grep Used)" # averiguamos el espacio usado de mega
echo "Te queda de espacio $libre" # mensaje en pantalla con informacion del espacio libre en mega
# anotamos en el log de copias de seguriadad en el log /home/nacho/logmega
echo "Copia Finalizada ($(date)) espacio ocupado ($ocu) espacio libre ($libre)" >> /home/nacho/logmega
exit

Una vez creado el script hay que darle permisos de ejecución

sudo chmod 755 /home/nacho/megabackup

para probar si funciona lo ejecutamos desde linea de comandos

./megabackup

A mi los problemas que me ha dado son por no tener creadas las carpetas en mega o por que los nombres de las carpetas no coincidian. Si teneis muchos archivos , yo 25GB, puede tardar varios días en realizar la copia.

Automatizar con cron

Ejecutamos el siguiente comando

crontab -e

Al final poneos la siguiente linea para que la sincronización se realice a las cuatro de la mañana.Cambia el usuario por el tuyo y la ruta del script por la tuya.

0 4     * * *   nacho   /home/nacho/megabackup

Guardamos y ya tenemos automatizadas las copias de seguridad en la nube de mega. todos los días.

El script solo añade los nuevos documentos que hayas generado desde las copia anterior con lo que aunque la primera copia tarde mucho las copias sucesivas son mucho mas rápidas.

Recuerda mirar de vez en cuando el log para comprobar si se realizan las copias.

Si el articulo os ha gustado os pediría el favor de que pulsaseis en los botones de mas abajo para compartirlo en las redes sociales. Muchas gracias por adelantado.