Mega backup automatizado.
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.
Awesome.
Thanks
Muy bueno; tras el chasco con UbuntuOne me he decidido a sincronizar con Mega.
Una cosa, uso 14.04 y parece que el repositorio no está habilitado para trusty. Creo que lo he solucionado modificando el repositorio y poniéndolo para precise. Probando y de momento funciona 100%.
Muy claramente explicado.
Gracias.
SALUD!
Muchas gracias a ti me alegro que te funcione. Con tu permiso añadiré el comentario al post.
Este post está muy bueno… Gracias!
GracIas a ti.
Muchas gracias por la entrada, me ha sido de mucha ayuda.
Quería preguntarte si sabes el modo de habilitar subidas paralelas y de reintentar subidas fallidas.
Para las subidas paralelas, he visto este comando:
ls *.7z | xargs -n1 -P4 megaput -u [dirección_correo_electrónico] -p [contraseña]
Lo he modificado para que suba todos los directorios y archivos que encuentre:
ls *.* | xargs -n1 -P4 megaput -u …
pero no me funciona, parece que solamente me ha subido los archivos sueltos y ha pasado de las carpetas 😉
Lo he visto en la siguiente página:
http://www.exvagos.com/showthread.php?t=530204
Sabrías como solucionarlo?
Gracias de antemano y un saludo.
Nunca he intentado hacer subidas paralelas no te puedo ayudar hechare un vistazo a ver si puedo o no, ya te contare.
como haces para bajarte otro repositorio, porque no puedo decifrar como se hace
Como haces para bajarte otro repositorio, porque yo tambien tengo trusty pero no entiendo como se bajan
Vas al programa de «Sotware y actualizaciones» marcas «Otro sofware», selecionas el repositorio de que pone «megous», lo editas y en «Distribución» cambias «trusty» por «precise» a ver si te funciona.
Lo he probado en slackware64_14.1 y corre muy bien. Gracias por el scrip, me será muy útil.