// como sincronizar Box.net en su computadora con Ubuntu

8

En un pasado tutorial les enseñamos como sincronizar dentro de Ubuntu sus archivos en los servidores de Google Drive a su computadora. Hoy les enseñaremos como hacer algo similar con otra solución de almacenamiento en la nube, Box.com.

Para hacer la sincronización utilizaremos una extensión llamada webdav, el cual permite el manejo de archivos remotos mediante HTTP.  Empecemos.

Paso #1: Ingrese al Terminal de Ubuntu

clip_image001

Paso #2: Próximo instalaremos el davfs2 mediante el siguiente comando:

sudo apt-get install davfs2

clip_image003

Paso #3: Ahora vamos a configurar el disco que se levantará (mount) con la data de Box.com. Para esto editaremos el archivo File Systems Table (fstab) el cual enlista cuales disco hay disponibles en la computadora. Añadiremos el disco de Box.com Ingrese el siguiente comando:

sudo nano /etc/fstab

clip_image005

Paso #4: Con el cursor del teclado muévase al final del archivo e ingrese lo siguiente:

https://www.box.com/dav /home/usuario/box.com davfs rw,user,auto 0 0

Sustituya la palabra usuario por su cuenta de usuario en Ubuntu. Oprima CTRL+X para salir y salvar los cambios.

clip_image007

Paso #5: Ahora añadiremos la información de su cuenta de Box.com. Ingrese le siguiente comando.

sudo nano /etc/davfs2/secrets

Paso #6: Con el cursor del teclado muévase al final del archivo e ingrese lo siguiente:

https://www.box.com/dav cuenta_box contraseña_box

Sustituya las palabras cuenta_box y contraseña_box por la cuenta de usuario (por lo regular una dirección de correo electrónico) y contraseña de su cuenta de Box.com. Bien importante dejar el espacio que separa la cuenta y la contraseña en la línea. Oprima CTRL+X para salir y salvar los cambios.

clip_image009

Paso #7: Ahora ingrese los siguiente comandos:

sudo usermod -a -G davfs2 usuario

Nota: sustituya la palabra “usuario” por su cuenta de usuario en Ubuntu

Seguido por los comandos:

sudo chmod u+s /sbin/mount.davfs

cd ~

mkdir box.com

Este último crea el directorio de Box.com en su computadora.

Paso #8: Ahora unos toques finales, ingrese los siguientes comandos:

mkdir ~/box.com/Default\ Sync\ Folder

sudo chmod 777 ~/box.com/Default\ Sync\ Folder

sudo ln -s ~/box.com/Default\ Sync\ Folder ~/.box.com

sudo nano /etc/davfs2/davfs2.conf

Paso #9: Con el cursor del teclado muévase a la línea donde dice: # use_locks       1

Modifíquelo para que diga así:

use_locks       0

Importante eliminar el símbolo de “#” al inicio o sino será interpretado como un comentario.

Oprima CTRL+X para salir y salvar los cambios.

clip_image011

Paso #10: Por último, ingrese el siguiente comando:

mount box.com

Verá que se añade un nuevo disco llamado box.com.

clip_image002[4]

Ahora hay un pequeño detalle, en ocasiones uno puede ingresar un archivo a este directorio o tratar de ver el contenido que está dentro de este y por alguna razón los archivos no aparecen o no se sincronizan. Quizás una limitación de webdav. Para resolver este tema vamos a usar la solución Unison, el cual se encarga de sincronizar dos directorios dentro de su computadora con Ubuntu. La idea es que este segundo directorio va a ser uno local, el cual no requiera de servicios como webdav.

Para instalar y configurar Unison haga lo siguiente:

Paso #11: Ingrese el siguiente comando:

sudo apt-get install unison

Este crea la carpeta .unison en su directorio principal (Home Folder).

Paso #12: Ahora vamos a crear el perfil el cual determina que archivos vamos a sincronizar. Ingrese el siguiente comando:

vim .unison/box.prf

Paso #13: Añada lo siguiente al final:

root = /home/usuario/box.net
root = /box.net

ignore = Name *~
ignore = Name .*~

auto = true

retry = 2

logfile = /tmp/unisonlog

batch = true

Sustituya donde dice “usuario” con su cuenta de usuario de Ubuntu.

Eso es todo. Si quiere probarlo, ingrese el siguiente comando para forzar la sincronización:

unison -ui text box

Esto lo que indica es que ejecute Unison en el forma sin gui (-ui) utilizando el perfil que creamos de Box (box.prf). Si todo sincronizo bien, verá un mensaje diciendo “Synchornization complete at…”. Si hubo un error, podrá ver una bitácora en el siguiente directorio: /tmp/unisonlog. Si ven lo que ingresamos en el paso #13, especificamos donde se estaría almacenando esta bitácora (logfile = /tmp/unisonlog). Ahora cualquier archivo que ingrese en el directorio /home//box.net  será sincronizado a los servidores de Box.net y viceversa simplemente al ejecutar el comando: unison box. Quizás diga, “pero yo quiero que sea todo automático, no quiero estar ejecutando manualmente este comando de unison”. ¡Vas a seguir pidiendo! Bueno pues, hagamos un trabajo de cron para que se ejecute automáticamente. 

Paso #14: Ingrese el siguiente comando:

/home/usuario/bin/unison_wrapper.sh:
#!/bin/bash
flock -n /var/lock/my_unison_lock unison -ui text box

Sustituya donde dice “usuario” con su cuenta de usuario de Ubuntu.

Nota: Flock es una herramienta de Ubuntu el cual bloquea un archivo si este ya esta siendo utilizado por otro servicio. La idea es que no terminemos ejecutando Unison dos veces de corrido en un mismo archivo. Si ya el proceso de sincronización empezó, cualquier invocación posterior de Unison no lo puede tocar hasta que termine el anterior.

Paso #15: Ahora cree el trabajo cron:

crontab –e

y coloque esto al final:

0 * * * * /home/usuario/bin/unison_wrapper.sh

Sustituya donde dice “usuario” con su cuenta de usuario de Ubuntu.

Lo que le estamos diciendo es que ejecute Unison cada segundo, constantemente en el trasfondo. Si Unison detecta un cambio en cualquiera de los directorios empieza la sincronización. ¡Guau! Fue largo el viaje pero lo logramos.

Fuente: http://seb.so

8 Responses

  1. Santiago

    Hola Carlos. He seguido tu guía hasta el paso 11 y he de decir que hasta ahí esta perfectamente explicado (Vamos que si me he enterado yo lo hace cualquiera) . Pero con lo de la sincronización me pierdo un poco.
    Para crear el perfil de unison usas una carpeta “root = /home/usuario/box.net” que me imagino te referirás a la carpeta “root = /home/usuario/box.com” que hemos creado en pasos anteriores. Lo que no se es de donde sale el directorio “root = /box.net” con el que se supone debe sincronizarse. He mirado el artículo que has usado como fuente y me lo ha dejado menos claro todavía ya que allí el directorio usado para montar box es “/media/box.net” y se sincroniza con otro creado para ello “~/box.net”. Lo único que se me ocurre, de hecho se me acaba ocurrir mientras escribo esto, es sustituir “root = /box.net” por “~/.box.com” ese enlace simbólico creado en el paso 8. Pero tengo miedo a cagarla.

  2. Óscar

    Buenas.
    Tengo la cuenta de box.net desde hace años y nunca se me había ocurrido sincronizarla en ningún lado, hasta ayer.
    Todo empezó porque uso Keepass como almacen de contraseñas en un disco externo con PortableApps.com. Pero me parecia un pequeño fallo en la seguridad tenerlas almacenadas en un solo sitio, y que ademas puede “desaparecer”.
    Luego pensé en meterlo en el movil con KeepassDroid, pero me segía pareciendo aún más inseguro. Y leyendo la descripción del KD vi que podia sincronizarlo con mi cuenta Box.
    Así que manos a la obra, y ahora tengo KeePass Ubuntu/Android con mis contraseñas a mano vía Box.net
    Sólo me queda incluir Windows con portableapps y el lote estaría completo.

    Un inciso, si se deja fstab.conf tal cual, ubuntu te dará un error al arrancar, porque mount intentará acceder a Box cuando aún no hay red. Se soluciona escribiendo noauto en lugar de auto en las opciones de fstab:
    https://www.box.com/dav /home/usuario/box.com davfs rw,user,noauto 0 0

  3. José Luis Sánchez

    Hola carlos.
    Felicidades por tu turorial y por digitalika.com.
    No tengo conocimientos de informàtica más allá de lo que es un simple usuario y estos tutoriales me vienen muy bien, sin ellos no podría usar Linux en casa (en la oficina no tengo más remedio que usar windows).He seguido el tutorial para sincronizar box paso a paso hasta el 12 en que que tras introducir el comando “vim .unison/box.prf” el mensaje que sale es
    El programa «vim» puede encontrarse en los siguientes paquetes:
    * vim
    * vim-gnome
    * vim-tiny
    * vim-athena
    * vim-gtk
    * vim-nox
    Intente: sudo apt-get install

    Si paso al 13 y pongo
    root = /home/usuario/box.net
    me devuelve el siguiente mensaje

    El programa «root» no está instalado. Puede instalarlo escribiendo:
    sudo apt-get install root-system-bin
    joseluis@joseluiscasa2:~$

    Como ves, estoy atascado y no se como solucionar este problema. Espero que puedas ayudarme.
    Saludos

  4. Santiago

    Hola José Luís.
    No se si ya habrás solucionado tu problema. Por si acaso te doy unas pistas:

    vim es un programa de edición de texto como gedit o el block de notas de windows que no viene instalado de forma predeterminada y no hace falta instalar. Sustituye vim por gedit quedando el comando:

    gedit .unison/box.prf

    Esto abrirá una nueva ventana (el editor de texto). Ahí es donde debes escribir el texto del paso 13.

    root = /home/usuario/box.net
    root = /box.net

    ignore = Name *~
    ignore = Name .*~

    auto = true

    retry = 2

    logfile = /tmp/unisonlog

    batch = true

    Puedes copiarlo y pegarlo directamente, aunque debes recordar cambiar donde dice “usuario” por tu nombre de usuario. Le das al botón Guardar de gedit y continuas con el paso siguiente.

  5. José Zurita

    está excelente tu post, ya tengo todo hasta el paso 13, pero al poner el 14 me sale que no existe el archivo, por favor ayúdame porque necesito sincronizar mis archivos, y ya sólo me faltan esos pasos