grive-google-drive-auto-sync

Grive2 es una aplicacón de línea de comando gratuita y de código abierto. Es un cliente de Google Drive para Linux que admite la sincronización parcial y es bastante popular entre los usuarios de Linux, pero probablemente muchos desconozcan que la herramienta incluye una solución integrada para sincronización automática de archivos de Google Drive con una carpeta local.

La página del proyecto Grit2 GitHub se actualizó recientemente para incluir instrucciones para habilitar una solución de sincronización automática: sincronización programada (comprueba los cambios en Google Drive cada 5 minutos y sincroniza los cambios localmente) además de eventos locales de cambios de archivos (carga automáticamente archivos nuevos y modificados desde el sistema de archivos local a medida que ocurren) con Google Drive, al utilizar inotify con unidades systemd.

Las unidades systemd, así como una secuencia de comandos de sincronización, están disponibles directamente en el repositorio Grive2 y se instalan automáticamente al instalar la aplicación. No son nuevos (sin embargo, recientemente hubo una solución para el manejo de directorios con espacios en sus nombres), pero esto no se mencionó en la página del proyecto hasta hace poco, por lo que muchos usuarios podrían haberlo perdido.

Gracias a esta funcionalidad, Grive2 puede ofrecer una experiencia cercana a la del cliente oficial de Google Drive (desde la perspectiva de la sincronización solamente, ya que no hay integración del administrador de archivos, etc.).

Sin embargo, la sincronización automática de Grive2 no es perfecta (pero debería ser suficiente para la mayoría de los usuarios). Gracias a inotify (usado a través de un script Bash), los cambios de archivos locales se cargan al instante en Google Drive, pero los archivos modificados en Google Drive no se descargan inmediatamente al sistema de archivos local porque Grive2 no puede detectar automáticamente cuando ocurren cambios en Google Drive. Para evitar este problema, Grive2 usa una unidad de temporizador systemd para verificar los cambios remotos (establecido en 5 minutos por defecto).

La página principal de la wiki de Grive2 menciona que un modo daemon podría implementarse en el futuro, para evitar ejecutar Grive2 varias veces para sincronizar archivos.

Características de Grive 2

Grive2 es una bifurcación del cliente original de Grive Google Drive para Linux. El proyecto original fue abandonado, pero Vitaliy Filippov lo bifurcó con el nombre Grive2 y agregó soporte para Drive REST API, compatibilidad de sincronización parcial, entre otras mejoras.

Las características de Grive 2 incluyen:

  • Sincronizar archivos desde/hacia Google Drive y una carpeta en el sistema de archivos local, desde la línea de comando
  • Compatibilidad parcial/selectiva: puede excluir archivos y carpetas específicos de la sincronización agregándolos al archivo .griveignore. También puedes sincronizar solo un subdirectorio con grive -s subdir
    –no-remote-new (descarga solo los archivos que se cambian en Google Drive y que ya existen localmente) y – modos de descarga solamente (no descarga nada de Google Drive, solo carga los cambios locales)
  • Crear nuevas revisiones en el servidor para archivos actualizados
  • Detección automática de movimiento/cambio de nombre
  • Sincronizar archivos compartidos (sin embargo, debes agregarlos explícitamente a tu Google Drive desde la interfaz web)
  • Opcionalmente, limitar la velocidad de carga o descarga
  • Opcionalmente, muestra una barra de progreso ASCII al cargar o descargar archivos
  • Autenticación Auth2

Para ver todo lo que tiene que ofrecer, ejecuta man grive luego de instalarlo.

La aplicación no admite Documentos de Google ni enlaces simbólicos. Tampoco admite sincronización automática directamente (esperando continuamente cambios en el sistema de archivos o en Google Drive y carga automáticamente los cambios), pero eso está disponible gracias a la secuencia de comandos inotify y las unidades de sistema que se incluyen con Grive 2, que mencioné en el comienzo del artículo.

Instalar Grive2 y habilitar la sincronización automática de los archivos de Google Drive con una carpeta local

Para saber cómo instalar Grive2, consulta la página de instalación. Asegúrate de descargar el último código de Git, y no el último lanzamiento, porque este último es bastante antiguo.

Las instrucciones incluyen pasos para crear un paquete Debian tú mismo (que puedes usar en Debian, Ubuntu, Linux Mint y otras distribuciones Linux basadas en DEB/Apt) pero también puedes descargar binarios Grive2 DEB para Ubuntu o Linux Mint desde aquí (también puedes agregar el PPA si deseas actualizaciones automáticas). A pesar de que el fork se llama Grive2, el binario sigue llamándose grive, como el viejo proyecto sin mantenimiento. Asegúrate de descargar la última versión de Grive2 para tu versión de Ubuntu (puedes ver la fecha para ver cuál es más reciente).

Ahora que Grive2 está instalado, utilicémoslo para sincronizar tus archivos de Google Drive con un directorio local y habilitar las sincronizaciones programadas y las funciones de sincronización de cambios de archivos.

1. Crea una carpeta en tu directorio personal donde sincronizaremos los archivos de Google Drive.

La carpeta local de Google Drive DEBE estar creada en el directorio de inicio de tu usuario o de lo contrario los scripts de sincronización automática no funcionarán. Te sugiero que crees una carpeta llamada GoogleDrive en tu directorio de inicio, ya sea usando un administrador de archivos o escribiendo este comando:

mkdir ~/GoogleDrive

El artículo asumirá que esto es lo que has usado a partir de ahora, así que asegúrate de cambiar esto en las siguientes instrucciones si eliges un nombre de carpeta diferente.

2. Autoriza Google Drive con Grive 2 y realiza la sincronización inicial.

La primera vez que ejecutas Grive2, debes hacerlo con el argumento -a para autorizarlo con tu Google Drive. Navega en la carpeta GoogleDrive recién creada desde tu directorio de inicio desde la línea de comandos, y ejecuta grive -a en esta carpeta:

cd ~/GoogleDrive
grive -a

Se debe mostrar un enlace en la línea de comando. Debes copiar este enlace y pegarlo en un navegador web. Cuando se te solicite, acepta dar permiso a Grive2 para acceder a tus archivos de Google Drive y copiar el código que se muestra en la página siguiente. De vuelta en la terminal donde ejecutaste Grive2, pega el código de autorización y presiona la tecla Intro.

Grive ahora debería comenzar a sincronizar sus archivos de Google Drive con la carpeta de su sistema de archivos local.

3. Habilita la sincronización automática de Grive 2 (sincronizaciones programadas: comprueba los cambios en Google Drive cada 5 minutos y sincronízalas con la carpeta local, y sincroniza los eventos locales de cambio de archivos, cargar automáticamente archivos nuevos y modificados del sistema de archivos local) Google Drive con una carpeta local.

Para habilitar e iniciar las unidades del sistema Grive 2, usa estos comandos (no los ejecutes como root):

systemctl --user enable Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.
systemctl --user start Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.
systemctl --user enable Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.
systemctl --user start Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.

GoogleDrive de cada uno de estos 4 comandos representa el nombre de la carpeta de Google Drive creada en el directorio de inicio en el paso 1. Si usaste un nombre de carpeta que no sea GoogleDrive, reemplázalo en estos comandos con el nombre que le diste a la carpeta. ¡La carpeta NECESITA estar en tu directorio de inicio o de lo contrario esto no funcionará!

En caso de que quieras sincronizar varias cuentas de Google Drive, puedes repetir los pasos anteriores utilizando un nombre de carpeta diferente (usa una carpeta diferente para cada cuenta). Repite los comandos systemctl arriba para cada carpeta que quieras sincronizar automáticamente con Google Drive.

También es posible que desees probar Grive Indicator, que hace uso de Grive2 para sincronizar con Google Drive. Sin embargo, no parece ser compatible con la función de sincronización automática incorporada de Grive2, y en su lugar parece usar un temporizador simple para sincronizar archivos con la unidad de Google en un intervalo determinado.

 

Fuente: Original | maslinux

¿Quién está en línea?

Hay 7462 invitados y ningún miembro en línea