"Después del juego es antes del juego"
Sepp Herberger

jueves, 23 de julio de 2020

Backup de homes a Google Drive usando rclone

Gracias al acuerdo con Google, disponemos de GSuite para toda la comunidad educativa, lo cual nos ha venido de perillas para continuar las clases durante el tiempo del confinamiento en la primera ola de COVID-19.

Una de sus ventajas es el espacio ilimitado en las cuentas de Google Drive, lo cual nos permite usarlas para hacer backups de datos contenidos en los servidores del centro y tenerlos disponibles fuera. Por ejemplo, podemos hacer un backup de nuestro home personal para tener los datos en la nube.

Para Linux no hay ningún cliente gratuito de Google Drive, pero rclone funciona bastante bien dentro de sus limitaciones. Es una aplicación multisistema, que soporta muchos tipos de nubes. La instalación se hace con los comandos:
# curl -O https://downloads.rclone.org/rclone-current-linux-amd64.zip
# unzip rclone-current-linux-amd64.zip
# cd rclone-*-linux-amd64
# cp rclone /usr/bin/
# chown root:root /usr/bin/rclone
# chmod 755 /usr/bin/rclone
# mkdir -p /usr/local/share/man/man1
# cp rclone.1 /usr/local/share/man/man1/
# mandb 
Para configurarlo haremos:
# rclone config
La configuración es bastante farragosa ya que son varios pasos para conseguir las credenciales en un fichero .json que permitan a nuestro rclone acceder a nuestra cuenta de Google del dominio GSuite desde línea de comandos. Algo parecido hicimos al configurar CUPS son Google Cloud Print en una entrada anterior.

Finalizado todo el proceso, ya tenemos rclone listo para acceder a la carpeta designada de nuestra nube de drive. Hay muchos comandos disponibles, pero a mi solo me interesa "sync", que sincroniza (ojo, de forma unidireccional, solo se modifica el destino) una carpeta local con una carpeta del drive. Eso me servirá para hacer backups:
# rclone sync -P  --exclude '.*{/**,}' /home/usuario/carpeta drive:/backup
El comando subiría la carpeta /home/usuario/carpeta a la carpeta backup de Google Drive, modificando/borrando los ficheros que hubiesen cambiado desde la última ejecución del comando. El --exclude hace que se ignoren las carpetas y ficheros que comiencen por ".", que son los archivos ocultos en Unix. De esos ficheros no me interesa hacer backups.

He estado haciendo varias pruebas y aunque la primera subida se demora bastante, ya que si tenemos varias decenas o centenas de GB el proceso es lento, puedo asegurar que en las restantes ejecuciones (las que hacen la verdadera sincronización) son bastante mas rápidas. Ideal por si de repente nos confinan de nuevo poder tener los datos importantes accesibles...

Por último, no olvidar que esta sincronización se podría hacer cada cierto tiempo de forma automática usando un crontab.

No hay comentarios:

Publicar un comentario