¿Cómo cambio el directorio de Dropbox en un servidor GNU / Linux sin cabeza?

22

He instalado Dropbox 2.0.0 a través de la línea de comandos en mi servidor doméstico (Ubuntu Server 12.04) para usarlo para copias de seguridad automáticas fuera del sitio, pero no puedo cambiar el directorio que mantiene sincronizado el demonio de Dropbox.

He intentado lo siguiente:

Los documentos oficiales dicen que use la aplicación de escritorio, que no es aplicable en mi situación. Sin embargo, instalé la aplicación de escritorio en mi máquina de escritorio y cambié la ubicación predeterminada de la carpeta, pero no puedo encontrar dónde está almacenado este cambio en el directorio ~ / .dropbox / para poder hacer el mismo cambio en el servidor.

Esta página (y varias otras) recomienda un script de Python para hacer el trabajo. Al observar el script, abre una base de datos SQLite llamada ~ / .dropbox / dropbox.db, que no existe en mi instalación de Dropbox, lo que me hace creer que el script está desactualizado.

Este hilo del foro sugiere insertar manualmente la fila requerida en la base de datos config.db, lo cual hice, pero no hizo ninguna diferencia. Verifiqué el mismo archivo de base de datos en mi máquina de escritorio, y no tiene la clave dropbox_path, por lo que supongo que la información en ese hilo también está desactualizada para la versión 2.0.

Intenté iniciar el asistente de configuración de la GUI de Dropbox a través de SSH con reenvío X11, como se sugiere en una de las respuestas, pero el binario debe detectar la ausencia de una instalación local X11 e inicia un demonio de línea de comando, que no proporciona medios para cambiar la opción que necesito

Actualmente estoy usando un enlace simbólico, como se sugiere como respuesta, pero esto es un error . Me gustaría saber la forma correcta de hacer el cambio.

¿Cómo cambio el directorio de Dropbox en un servidor GNU / Linux sin cabeza?

Actualización: abandoné Dropbox y comencé a usar Copiar . Sus herramientas y soporte de Linux son muy superiores a Dropbox. Dejo esta pregunta aquí en caso de que alguien, algún día, pueda responderla.

xx
fuente
A pesar de mi respuesta, si este es su servidor doméstico, ¿por qué no solo conecta una pantalla, realiza los cambios y quita la pantalla nuevamente?
terdon
@terdon, No hay X11 para ejecutar la aplicación de escritorio de Dropbox.
xx
Ah, está bien, es justo, prueba mi respuesta entonces, debería funcionar. El servidor sin cabeza de mi casa en realidad tiene X, simplemente no se inicia de manera predeterminada y no hay una pantalla conectada, por eso pregunté. Sin embargo, probé mi respuesta en un servidor sin cabeza y sin X11 y funcionó. El reenvío X11 utiliza el servidor X local y no necesita uno para ejecutarse en la máquina remota.
terdon
¿Alguna opción mejor ahora que se fue la copia? "Copy fue descontinuado el 1 de mayo de 2016. Como antiguo usuario de Copy, creemos que le gustará Trove". - intentado eso?
Xen2050

Respuestas:

11

Podrías crear un enlace simbólico para ~/Dropbox

ln -s <dir-that-you-want-to-sync> ~/Dropbox
Aditya
fuente
3
La pregunta es: "¿Cómo puedo cambiar el directorio de Dropbox ...", la simulación no es la respuesta.
xx
44
Pero se ocupa de la razón por la que desea cambiar el directorio de Dropbox, cf. Problema XY
Aditya
Realmente. Creo que esto no funcionará, recuerdo haber tenido problemas con los enlaces simbólicos que no funcionan con Dropbox.
terdon
3
Symlinking funciona, y es lo que estaba usando antes de hacer esta pregunta, pero es un Kludge. Vine aquí para descubrir la forma correcta de hacer el cambio. Actualizaré la pregunta para reflejar esto.
xx
Esto no funciona si necesita mover su carpeta de Dropbox fuera de su directorio de inicio, por ejemplo, si desea que otros usuarios puedan acceder al contenido de su carpeta de Dropbox. La solución de ikandar a continuación funcionó para mí, para esta situación.
jesse.r
6

Así que aquí está mi truco:

Primero elimino todas las carpetas relacionadas creadas en mi carpeta de inicio

rm -rf ~/.dropbox-dist

También elimino la carpeta predeterminada de Dropbox:

rm -rf ~/Dropbox

Entonces reinstalé el demonio dropbox definiendo HOME env var así:

HOME=/data/other_folder dropbox.py start -i

A continuación, inicie dropboxd daemon manualmente ejecutando:

HOME=/data/other_folder /data/other_folder/.dropbox-dist/dropboxd

Entonces espere hasta que termine.

ikandars
fuente
1
En mi experiencia, también debe eliminar ~ / .dropbox, de lo contrario, el paso 4 se quejará de que la computadora ya está vinculada y no le permitirá continuar dentro de / data / other_folder.
jesse.r
Gracias, esto funcionó para mí. Advertencias: 1. Recuerde que sus datos vivirán en /data/other_folder/Dropbox2. Creará algunos otros archivos de puntos en su interior other_folder, por ejemplo, cuando inicie su navegador para el inicio de sesión inicial. Puede intentar eliminarlos más tarde. 3. Debe usar HOME=...cada vez que inicie Dropbox. (Traté de mover las .dropbox*carpetas a mi casa real después de que todo funcionaba, pero eso simplemente rompió la configuración.)
joeytwiddle
4

Esta es una deficiencia real de la aplicación Linux. En las versiones anteriores, podía modificar el archivo de configuración. En la versión más reciente, parece que la única solución es cambiar la $HOMEvariable antes de que se inicie Dropbox.

Digamos que queremos que aparezca la carpeta 'Dropbox' /foo/bar.

  1. Instala Dropbox en /foo/bar/.dropbox-dist.
  2. Descargue el script Python para controlar Dropbox desde la página Linux Dropbox .
  3. En este script, a continuación, import osagregue una línea:os.environ["HOME"] = "/foo/bar"
  4. Dropbox controlado / iniciado a través del script de control ahora piensa que /foo/bar/es tuyo /home/username/.

Esto significa que cuando se usa el script de control, ahora busca /foo/bar/.dropbox-dist/dropboxejecutar el demonio. Los archivos de configuración se escribirán en /foo/bar/.dropbox/. La /foo/bar/Dropbox/carpeta se usará para la sincronización de archivos.

John Doe
fuente
Excelente consejo! Ayudó mucho ¡Combínalo con ln -s ~/dropbox.py /usr/local/bin/dropboxmenos tipeo!
Chris McKnight
Esto funciona muy bien para mí, aunque cuando intento detener Dropbox recibo un mensaje que dice Dropbox isn't responding!. Aunque parece que se detiene. Un poco extraño.
ohruunuruus
Curiosamente, crear una secuencia de comandos en /usr/local/binese conjunto HOMEantes de ejecutar la secuencia de comandos de Python (en lugar de modificar la secuencia de comandos en sí os.environ["HOME"]) parece haber limpiado esto.
ohruunuruus
0

Si tiene sshacceso a la máquina en cuestión, puede iniciar la dropboxaplicación de escritorio en el servidor sin cabeza y mostrarla en su máquina local:

  1. Conéctese al servidor utilizando el reenvío de puertos X11

    ssh -Y user@server
    
  2. Ahora inicie la aplicación Dropbox, debería aparecer en su pantalla local

    ~/.dropbox-dist/dropbox
    

    Puede tomar un tiempo dependiendo de su conexión de red. No te rindas si no recibes un mensaje de error. Puedo confirmar que esto funcionó cuando me conecté desde mi caja Debian a un servidor Ubuntu remoto que no ejecutaba ningún servidor X. Después de unos segundos, apareció un segundo icono de Dropbox en mi barra de tareas local y pude acceder / modificar las opciones de instalación remota de Dropbox desde allí.

Ahora, algunos detalles pueden cambiar ya que estoy usando Dropbox 1.6.18, pero lo básico debería ser lo mismo. En caso de que el nombre o la ubicación de la aplicación hayan cambiado, así es como descubrí qué comando necesito ejecutar para iniciar la aplicación de escritorio de Dropbox:

  1. Obtenga la lista de procesos actualmente en ejecución

    top -cbd .10 -n 1 | sort > no_drop.txt
    
  2. Inicie la aplicación Dropbox (haga clic con el botón derecho en el icono de Dropbox en su barra de tareas y elija "Preferencias ...") y repita

    top -cbd .10 -n 1 | sort > drop.txt
    
  3. Compare los archivos para encontrar el comando relevante

    diff drop.txt no_drop.txt
    
terdon
fuente
1
No hay una aplicación GUI para reenviar, solo dropboxd, el demonio Dropbox.
xx
¿Usted intentó el topy difftruco que sugerí? Inicie la aplicación en su máquina local, se debe iniciar algo, por lo tanto, hay un comando. Si, en la nueva versión, el único comando es el demonio, entonces inicie el demonio, todavía aparecerá en su barra de tareas.
terdon
En mi máquina de escritorio, ejecutar ~ / dropbox-dist / dropbox inicia un asistente de configuración de GUI. En el servidor, a través de la conexión ssh con el reenvío X11 activado, ~ / dropbox-dist / dropbox lanza un demonio que me indica que vaya a una URL específica para 'vincular esta máquina'. Tanto el servidor como el escritorio están utilizando exactamente el mismo archivo para instalar los archivos de Dropbox. En el archivo, los únicos dos archivos ejecutables son dropbox y dropboxd; el último es solo un script de shell para establecer LD_LIBRARY_PATH y ejecutar el primero.
xx
Hmm, mi servidor remoto ha sido vinculado. Si no recuerdo mal, tuve que iniciar un navegador gráfico ( lynxno pude hacerlo) en la máquina remota (siempre usando el reenvío X11) y vincular la máquina usando ese navegador. Intenta hacerlo y luego ~/dropbox-dist/dropboxvuelve a iniciarlo . Al menos hemos confirmado que funciona, el demonio que mencionas es gráfico y se muestra en tu pantalla local, ¿verdad? Por lo tanto, una vez que haya vinculado su servidor a su cuenta, debería poder configurarlo como se describe en mi respuesta.
terdon
Estaba vinculado, acabo de eliminar la configuración de ~ / .dropbox para comenzar desde cero. "El demonio que mencionas es gráfico y se muestra en tu pantalla local, ¿verdad?" No, no es gráfico cuando se ejecuta en el servidor. Debe detectar la ausencia de X11 y pasar al modo de línea de comando solamente, a pesar de que el reenvío X11 esté activado.
xx
0

Esto podría ser lo que estás buscando:

Configure Dropbox en un servidor Linux sin GUI

Pido disculpas por simplemente lanzar una URL en lugar de describir los procedimientos aquí. Estoy en el trabajo y no puedo elaborar más en este momento. Más adelante puedo ampliar la respuesta, simplemente no quiero perder esta valiosa URL con su solución.

MestreLion
fuente
0

TechRepublic tiene una página - Configurar Dropbox en un servidor Linux sin GUI - que dice resolver este problema:

... Se proporcionan herramientas GUI para administrar Dropbox y configurarlo para [Linux, Windows y OS X]. Pero, ¿qué sucede si desea vincular una computadora Linux que no tiene una GUI? Es posible, con un poco de trabajo, hacer que Dropbox se ejecute sin una GUI, lo que le permite sincronizar archivos con servidores que se ejecutan sin cabeza o donde una cuenta de usuario puede no estar conectada todo el tiempo.

    ︙

Empezar:

# mkdir -p /tmp/dropbox
# cd /tmp/dropbox
# curl -OL http://dl.getdropbox.com/u/6995/dbmakefakelib.py
# curl -OL http://dl.dropbox.com/u/637552/Dropbox/dbreadconfig.py
# curl -L -o dropbox.tar.gz http://www.dropbox.com/download?plat=lnx.x86_64

Úselo plat=lnx.x86si desea el cliente de 32 bits. Esto crea un directorio temporal para nuestros archivos de instalación de Dropbox y descarga dos scripts de Python necesarios: dbmakefakelib.py que crea copias falsas de las bibliotecas GUI para que se inicie el demonio dropboxd, y dbreadconfig.pyque muestra la información de configuración de Dropbox.

Decide qué usuario ejecutará el cliente de Dropbox; Esto podría ser un usuario dedicado o podría ser un usuario normal. También puede tener más de una instancia de Dropbox ejecutándose en el sistema, por lo que puede optar por configurarla para varios usuarios (aunque cada usuario solo puede ejecutar una instancia de Dropbox). Para este ejemplo, habremos creado un usuario especial "dropbox" que ejecutará este cliente de Dropbox.

# su - dropbox
$ cd ~/
$ tar xvzf /tmp/dropbox/dropbox.tar.gz
$ cd .dropbox-dist
$ python /tmp/dropbox/dbmakefakelib.py
dropboxd ran for 15 seconds without quitting - success?

El script dbmakefakelib.py requiere gcc, por lo que debe tener gcc instalado en el sistema. Esto crea copias falsas de las bibliotecas de la GUI para que se inicie dropboxd. Al final, puedes ver que lanzó dropboxd; presione Ctrl+ Cpara salir del guión. dropboxd aún debería ejecutarse en segundo plano:

$ ps ax | grep dropboxd
24001 pts/0    S      0:00 sh -c { /home/dropbox/.dropbox-dist/dropboxd; } 2>&1

Ahora que Dropbox se está ejecutando, debemos vincularlo a una cuenta existente:

$ cd ~/
$ python /tmp/dropbox/dbreadconfig.py
host_id = 0bd9c5a15458fbc31f85e892faa7dac4
schema_version = 6

Agarra el host_id desde arriba. Inicie sesión en la interfaz web de Dropbox y, una vez que haya iniciado sesión, visite manualmente esta URL:

https://www.dropbox.com/cli_link?host_id= [HOST_ID]

Reemplácelo [HOST_ID]con el host_id que genera dbreadconfig.py. Cuando haya hecho eso, el sitio de Dropbox le dirá que ha vinculado con éxito una nueva computadora. Vaya a la configuración de su cuenta y luego a Mis computadoras y verá la nueva computadora en la lista.

Si no ha eliminado el proceso de dropboxd que inició dbmakefakelib.py, verá que ya está descargando los archivos de Dropbox a ~ / Dropbox / en segundo plano.

Para iniciar el demonio dropboxd en segundo plano durante el arranque, puede agregar lo siguiente a su script de inicio /etc/rc.d/rc.local:

daemon —user dropbox /bin/sh -c "/home/dropbox/.dropbox-dist/dropboxd&"

Esto iniciará dropboxd en segundo plano con los privilegios del usuario para el que está instalado (en este caso, el usuario es "dropbox"). Si desea hacer un initscript para todo el sistema, visite el wiki de Dropbox donde hay algunos ejemplos que puede usar, incluidos initscripts para Fedora / Red Hat y Debian / Ubuntu. También tiene ejemplos de cómo configurar Dropbox ejecutándose bajo las herramientas daemontools de DJB.

Scott
fuente
Gracias a MestreLion ⁠⁠ por publicar este enlace .
Scott
0

Acabo de encontrar el mismo problema y pude resolverlo

  1. Desvincular la cuenta a través de la interfaz de usuario web de Dropbox:

    https://blogs.dropbox.com/dropbox/2014/10/how-to-unlink-a-device-from-your-dropbox/

  2. Eliminando el ~/.dropboxdirectorio para el usuario en ejecución dropboxd.

    rm -r ~/.dropbox
    
  3. Es posible que también necesite limpiar el ~/Dropboxdirectorio.

El primer paso puede no ser necesario, pero ya lo había hecho antes de eliminarlo ~/.dropbox, lo que finalmente me permitió configurarlo nuevamente.

Recuerde ir cdal directorio que desea que sea su carpeta raíz de Dropbox. Entonces funcionó bien para mí.

Ben M
fuente
Hola y bienvenido a SuperUser. ¿Puedes dar más detalles sobre tu respuesta? Específicamente, ¿dar un resumen más profundo de lo que el usuario debe hacer?
Gerente de servicio
0

Tuve el mismo problema. Quería usar Dropbox para sincronizar un disco duro secundario grande en un servidor ubuntu. Lo que hice fue crear un enlace simbólico desde el disco duro secundario a mi directorio de inicio antes de instalar Dropbox

ln -s /mnt/disks/sdb /home/marc/Dropbox

Solo instale Dropbox después de completar el paso anterior.

De esta manera, Dropbox en el directorio de Inicio es el enlace simbólico y la carpeta real es desde donde vinculó.

marcus trenton
fuente