Fon Simó

Google Drive en Linux y Raspberry Pi (con Insync)

Uno de los requisitos que tiene mi sistema de videovigilancia en Raspberry es que, además de avisar por mail cuando detecta movimiento, ha de guardar en Google Drive las imágenes y un vídeo con lo que ocurre. Por eso necesitaba utilizar Google Drive en Linux, y específicamente, en mi Raspberry Pi.

En este artículo comparto mi experiencia y documentación de cómo configurar Drive utilizando Insync.

Google Drive en Linux: Por qué Insync

Al principio utilizaba Grive, un producto open source y gratis, que funcionaba muy bien. Pero debido a unos cambios en la API de Drive, de un día para otro dejó de funcionar. Además tenía la desventaja que había que decirle que existían cambios en los ficheros, y recién ahí se encargaba de sincronizar.

Me decidí por Insync porque:

Otras ventajas de Insync, que no son relevantes para mi proyecto, pero que son muy interesantes:

La única desventaja, se trata de un producto de pago. Cuesta 20 dólares por única vez, por cuenta. Creo que es totalmente asumible, por lo menos para el proyecto de videovigilancia que he montado.

Instalando Insync

En Linux para PC, hay varias maneras de instalarlo. Con repositorios o bajándose los paquetes. En Debian sólo me funcionó la opción de bajar al versión portable (más abajo)

Para instalar Insync en Debian Jessie

1) Agregar la llave pública de GPG:
wget -qO - https://d2t3ff60b2tol4.cloudfront.net/services@insynchq.com.gpg.key \ | sudo apt-key add -

2) Editar sources.list (normalmente en /etc/apt), y agregar esta línea:
deb http://apt.insynchq.com/debian jessie non-free contrib
3) Actualizar el repositorio
sudo apt-get update
4) Instalar Insync
sudo apt-get install insync

Instalar Insync en Raspberry Pi (versión potable y de comando)

La instalación en Raspberry la hice con línea de comandos, y es muy fácil. Lo bueno, es que se trata de una instalación portable, esto es, sólo necesitas un directorio, y de hecho lo puedes mover y «llevarte» Google Drive allí donde lo necesites. Si alguna vez necesitas, por ejemplo, cambiar de Raspberry, sólo con copiar esa carpeta ya lo tendrás funcionando en otra Raspberry.

Aquí están los pasos a seguir:

1) Determinar qué arquitectura de Raspberry tenemos (armhf o armel) Para ello:
readelf -A /proc/self/exe | grep Tag_ABI_VFP_args
Si obtenemos un resultado tenemos una Raspberry armhf, de lo contrario, es armel.

2) Bajar el paquete que corresponda (a armhf o armel)

De este enlace: Insynchq.com

3) Ir al directorio donde quieras tener Insync portable, en mi caso ~/
tar -xjf [fichero-que-te-has-descargado.bz2]
Esto creará un directorio llamado insync-portable

4) La primera vez que ejecutes isync portable, debes configurar la cuenta de Google que quieres tener sincronizada. Para ello debes visitar este enlace, que creará un código de autorización para que Insync se vincule a tu cuenta:
https://goo.gl/jv797S

Este enlace, después de darle autorización a Insync, te devuelve un código, que has de agregar a Insync. El código que te devuelve este proceso es algo así:

 

Para finalizar, agrega ese código con el siguiente comando:
./insync-portable add_account -a codigo-devuelto
Una vez vinculado Insync con la cuenta de Google Drive que queremos, ya podemos comenzar a sincronizar los ficheros. Para ello utilizamos el comando start
./insync-portable start
Si quieres ver una lista de los comandos que puedes pasarle a Insync, ejecuta
./insync-portable help

Automatizando Google Drive en Raspberry Pi

Para configurar el arranque automático de Insync, yo he hecho esta script. Este script va en /etc/init.d y yo lo llamé isync
#!/bin/sh
### BEGIN INIT INFO
# Provides: insync
# Required-Start: hostname $local_fs
# Required-Stop:
# Should-Start:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Gestiona insync, el cliente de Google Drive en Linux
### END INIT INFO

PATH=/sbin:/usr/sbin:/bin:/usr/bin
. /lib/init/vars.sh

do_start () {
# Arrancamos insync
# Google Drive en Raspberry Pi

echo Arrancando insync
cd /home/pi/insync-portable/client
sudo -u pi ./insync-portable start

}

do_status () {
echo No implementado
}

do_stop () {
echo Cerrando insync

cd /home/pi/insync-portable/client
sudo -u pi ./insync-portable quit
}

case "$1" in
start)
do_start
;;

restart|reload|force-reload)
echo "Error: argumento '$1' no implementado" >&2
exit 3
;;
stop)
do_stop
;;
status)
do_status
exit $?
;;

*)
echo "Uso: insync [start|stop]" >&2
exit 3
;;
esac
:


Y para activar este script al arranque, recuerda ejecutar:
sudo update-rc.d isync defaults
Y de esta manera, cualquier cambio que haya en Google Drive, en cualquier dispositivo, se mantiene sincronizado. Si la Raspberry detecta movimiento, copia los ficheros a la carpeta de Insync y éste se encarga de subir las imágenes a mi Google Drive.

Simple pero efectivo 🙂

Espero que con este artículo puedas tener funcionando tu Google Drive en Linux

Fuente de la documentación: página oficial de Insync

Google Drive en Linux y Google Drive en Raspberry Pi
Salir de la versión móvil