Como altero o diretório do Dropbox em um servidor GNU / Linux sem cabeça?

22

Instalei o Dropbox 2.0.0 via linha de comando no meu servidor doméstico (Ubuntu Server 12.04) para usar em backups automatizados externos, mas não posso alterar o diretório que o daemon do Dropbox mantém sincronizado.

Eu tentei o seguinte:

Os documentos oficiais dizem usar o aplicativo da área de trabalho, o que não é aplicável na minha situação. No entanto, instalei o aplicativo de desktop na minha máquina e alterei o local da pasta padrão, mas não consigo encontrar onde essa alteração está armazenada no diretório ~ / .dropbox / para que eu possa fazer a mesma alteração no servidor.

Esta página (e várias outras) recomenda um script Python para fazer o trabalho. Observando o script, ele abre um banco de dados SQLite chamado ~ / .dropbox / dropbox.db, que não existe na minha instalação do Dropbox, levando-me a acreditar que o script está desatualizado.

Este tópico do fórum sugere a inserção manual da linha necessária no banco de dados config.db, o que fiz, mas não fez diferença. Eu verifiquei o mesmo arquivo de banco de dados na minha máquina da área de trabalho e ele não possui a chave dropbox_path, portanto, presumo que as informações nesse segmento também estejam desatualizadas para a versão 2.0.

Tentei iniciar o assistente de configuração da GUI do Dropbox por SSH com encaminhamento X11, conforme sugerido em uma das respostas, mas o binário deve detectar a ausência de uma instalação local do X11 e iniciar um daemon de linha de comando, o que não fornece meios para mude a opção que eu preciso.

Atualmente, estou usando um link simbólico, como sugerido como resposta, mas este é um argumento . Gostaria de saber a maneira correta de fazer a alteração.

Como altero o diretório do Dropbox em um servidor GNU / Linux sem cabeça?

Atualização: abandonei o Dropbox e comecei a usar o Copy . Suas ferramentas e suporte para Linux são muito superiores ao Dropbox. Deixo esta questão aqui, caso alguém, algum dia, possa responder.

xx
fonte
Não obstante, minha resposta é: se esse é o seu servidor doméstico, por que você não conecta uma tela a ele, faz as alterações e retira a tela?
terdon
@terdon, Não há X11 para executar o aplicativo de área de trabalho do Dropbox.
xx
Ah, tudo bem, tente minha resposta, então deve funcionar. Meu servidor decapitado em casa realmente tem o X, ele simplesmente não é iniciado por padrão e não há tela anexada, foi por isso que perguntei. Testei minha resposta em um servidor realmente sem cabeça e sem X11 e funcionou. O encaminhamento do X11 usa o servidor X local e não precisa de um para estar em execução na máquina remota.
terdon
Alguma opção melhor agora que a cópia se foi? "A cópia foi descontinuada em 1 de maio de 2016. Como ex-usuário da cópia, acreditamos que você gostará do Trove." - tentou isso?
Xen2050 24/10/18

Respostas:

11

Você pode apenas criar um link simbólico para ~/Dropbox

ln -s <dir-that-you-want-to-sync> ~/Dropbox
Aditya
fonte
3
A pergunta é: "Como posso alterar o diretório do Dropbox ...", o link simbólico não é a resposta.
xx
4
Mas ele cuida do motivo pelo qual você deseja alterar o diretório do Dropbox, cf. Problema XY
Aditya
Na realidade. Acho que isso não vai funcionar, lembro-me de ter problemas com links simbólicos que não funcionam com o Dropbox.
terdon
3
O link simbólico funciona, e era o que eu estava usando antes de fazer essa pergunta, mas é um Kludge. Eu vim aqui para descobrir a maneira correta de fazer a alteração. Vou atualizar a pergunta para refletir isso.
xx
Isso não funciona se você precisar mover a pasta do Dropbox para fora do diretório inicial, por exemplo, se desejar que outros usuários possam acessar o conteúdo da pasta do Dropbox. A solução da ikandar abaixo funcionou para mim, nessa situação.
jesse.r
6

Então, aqui está o meu truque:

Primeiro, removo todas as pastas relacionadas criadas na minha pasta pessoal

rm -rf ~/.dropbox-dist

Também removo a pasta padrão do Dropbox:

rm -rf ~/Dropbox

Então, reinstalei o daemon do dropbox definindo HOME env var assim:

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

Em seguida, inicie o daemon dropboxd manualmente executando:

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

Então espere até terminar.

ikandars
fonte
11
Na minha experiência, você também precisa remover ~ / .dropbox, caso contrário, a etapa 4 irá reclamar que o computador já está vinculado e não permitirá que você prossiga em / data / other_folder.
jesse.r
Obrigado, isso funcionou para mim. Advertências: 1. Lembre-se de que seus dados /data/other_folder/Dropboxpermanecerão em 2. Ele criará outros arquivos de pontos dentro other_folder, por exemplo, quando iniciar o navegador para o login inicial. Você pode tentar esclarecê-las mais tarde. 3. Você deve usar HOME=...sempre que iniciar o dropbox. (Tentei mover as .dropbox*pastas para a minha verdadeira casa depois tudo estava funcionando, mas que apenas quebrou a configuração.)
joeytwiddle
4

Esta é uma falha real do aplicativo Linux. Nas versões mais antigas, você pode modificar o arquivo de configurações. Na versão mais recente, parece que a única solução é alterar a $HOMEvariável antes do Dropbox iniciar.

Digamos que queremos que a pasta 'Dropbox' apareça /foo/bar.

  1. Instale o Dropbox no /foo/bar/.dropbox-dist.
  2. Faça o download do script Python para controlar o Dropbox na página Linux Dropbox .
  3. Neste script, import osadicione abaixo uma linha:os.environ["HOME"] = "/foo/bar"
  4. O Dropbox controlado / iniciado através do script de controle agora pensa que /foo/bar/é seu /home/username/.

Isso significa que, ao usar o script de controle, ele agora procura /foo/bar/.dropbox-dist/dropboxexecutar o daemon. Os arquivos de configuração serão gravados em /foo/bar/.dropbox/. A /foo/bar/Dropbox/pasta será usada para sincronização de arquivos.

john doe
fonte
Excelente dica! Ajudou muito. Combine isso com ln -s ~/dropbox.py /usr/local/bin/dropboxmenos digitação!
Chris McKnight
Isso funciona muito bem para mim, mas quando tento parar o dropbox recebo uma mensagem dizendo Dropbox isn't responding!. Parece que ele pára embora. Um pouco estranho.
ohruunuruus 9/03
Curiosamente, criar um script nesses /usr/local/binconjuntos HOMEantes de executar o script python (em vez de modificar o próprio script os.environ["HOME"]) parece ter resolvido isso.
ohruunuruus 9/03
0

Se você tiver sshacesso à máquina em questão, poderá iniciar o dropboxaplicativo da área de trabalho no servidor sem cabeça e exibi-lo na sua máquina local:

  1. Conecte-se ao servidor usando o encaminhamento de porta X11

    ssh -Y user@server
    
  2. Agora inicie o aplicativo dropbox, ele deve aparecer na tela local

    ~/.dropbox-dist/dropbox
    

    Pode demorar um pouco, dependendo da sua conexão de rede. Não desista se você não receber uma mensagem de erro. Posso confirmar que isso funcionou quando eu me conectei da minha caixa Debian a um servidor Ubuntu remoto que não estava executando nenhum servidor X. Após alguns segundos, um segundo ícone do Dropbox apareceu na minha barra de tarefas local e eu pude acessar / modificar as opções da instalação remota do Dropbox a partir daí.

Agora, alguns detalhes podem mudar desde que eu estou usando o Dropbox 1.6.18, mas o básico deve ser o mesmo. Caso o nome ou o local do aplicativo tenha sido alterado, foi assim que descobri o comando que preciso executar para iniciar o aplicativo de área de trabalho do Dropbox:

  1. Obtenha a lista de processos em execução no momento

    top -cbd .10 -n 1 | sort > no_drop.txt
    
  2. Inicie o aplicativo Dropbox (clique com o botão direito do mouse no ícone do Dropbox na barra de tarefas e escolha "Preferências ...") e repita

    top -cbd .10 -n 1 | sort > drop.txt
    
  3. Compare os arquivos para encontrar o comando relevante

    diff drop.txt no_drop.txt
    
Terdon
fonte
11
Não há aplicativo GUI para encaminhar, apenas dropboxd, o daemon do Dropbox.
xx
Você tentou o tope diffenganar sugeri? Inicie o aplicativo em sua máquina local, algo deve ser iniciado, portanto, há um comando. Se, na nova versão, o único comando for o daemon, inicie o daemon, ele ainda aparecerá na sua barra de tarefas.
terdon
Na minha máquina desktop, executar ~ / dropbox-dist / dropbox inicia um assistente de configuração da GUI. No servidor, através da conexão ssh com o encaminhamento do X11 ativado, ~ / dropbox-dist / dropbox lança um daemon que me instrui a ir para um URL específico para 'vincular esta máquina'. O servidor e a área de trabalho estão usando exatamente o mesmo arquivo morto para instalar os arquivos da caixa de depósito. No arquivo morto, os únicos dois arquivos executáveis ​​são dropbox e dropboxd; o posterior é apenas um script de shell para definir LD_LIBRARY_PATH e iniciar o anterior.
xx
Hmm, meu servidor remoto tem sido associada. Se bem me lembro, tive que iniciar um navegador gráfico ( lynxnão podia fazê-lo) na máquina remota (sempre usando o encaminhamento X11) e vincular a máquina usando esse navegador. Tente fazer isso e, em seguida, inicie ~/dropbox-dist/dropboxnovamente. Pelo menos confirmamos que funciona, o daemon que você mencionou é gráfico e é exibido na tela local, certo? Portanto, depois de vincular seu servidor à sua conta, você poderá configurá-lo conforme descrito na minha resposta.
terdon
Estava ligado, acabei de excluir a configuração de ~ / .dropbox para começar do zero. "o daemon que você mencionou é gráfico e é exibido na tela local, certo?" Não, não é gráfico quando executado no servidor. Ele deve detectar a ausência do X11 e entrar no modo somente de linha de comando, apesar do encaminhamento do X11 estar ativado.
xx
0

Pode ser o que você está procurando:

Configurar o Dropbox em um servidor Linux sem GUI

Peço desculpas por simplesmente lançar um URL em vez de descrever os procedimentos aqui. Estou no trabalho e não posso elaborar mais agora. Mais tarde, posso expandir a resposta, mas não quero perder esse URL valioso com sua solução.

MestreLion
fonte
0

O TechRepublic possui uma página - Configurar o Dropbox em um servidor Linux sem GUI - que afirma resolver este problema:

… Existem ferramentas GUI fornecidas para gerenciar o Dropbox e configurá-lo para [Linux, Windows e OS X]. Mas o que acontece se você deseja vincular um computador Linux que não tenha uma GUI? É possível, com um pouco de trabalho, fazer com que o Dropbox seja executado sem uma GUI, permitindo sincronizar arquivos com servidores que estão sem cabeça ou onde uma conta de usuário pode não estar conectada o tempo todo.

    ︙

Começar:

# 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

Use plat=lnx.x86se você deseja o cliente de 32 bits. Isso cria um diretório temporário para nossos arquivos de instalação do Dropbox e baixa dois scripts python necessários: dbmakefakelib.py que cria cópias falsas de stub das bibliotecas da GUI para que o daemon do dropboxd seja iniciado e dbreadconfig.pyque exibe informações de configuração do dropbox.

Decida qual usuário estará executando o cliente Dropbox; pode ser um usuário dedicado ou um usuário comum. Você também pode ter mais de uma instância do Dropbox em execução no sistema; portanto, você pode optar por configurá-la para vários usuários (embora cada usuário possa executar apenas uma instância do Dropbox). Neste exemplo, teremos criado um usuário especial "dropbox" que executará esse cliente 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?

O script dbmakefakelib.py requer o gcc, portanto, você deve ter o gcc instalado no sistema. Isso cria cópias stub falsas das bibliotecas da GUI para que o dropboxd seja iniciado. No final, você pode ver que ele lançou o dropboxd; pressione Ctrl+ Cpara sair do script. O dropboxd ainda deve estar em execução em segundo plano:

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

Agora que o dropbox está em execução, precisamos vinculá-lo a uma conta existente:

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

Pegue o host_id de cima. Faça login na interface da web do Dropbox e, depois de fazer login, visite manualmente este URL:

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

Substitua [HOST_ID]pelo host_id que o dbreadconfig.py gera. Quando você fizer isso, o site do Dropbox informará que você vinculou com êxito um novo computador. Vá para as configurações da sua conta e, em seguida, Meus computadores, e você verá o novo computador listado.

Se você não interrompeu o processo do dropboxd iniciado pelo dbmakefakelib.py, verá que ele já está baixando os arquivos do Dropbox para ~ / Dropbox / em segundo plano.

Para iniciar o daemon dropboxd em segundo plano na inicialização, você pode adicionar o seguinte ao seu script de inicialização /etc/rc.d/rc.local:

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

Isso iniciará o dropboxd em segundo plano com os privilégios do usuário para o qual está instalado (nesse caso, o usuário é "dropbox"). Se você deseja criar um initscript para todo o sistema, visite o wiki do Dropbox, onde há alguns exemplos que você pode usar, incluindo initscripts para o Fedora / Red Hat e para o Debian / Ubuntu. Ele também tem exemplos de como configurar o Dropbox em execução nos daemontools do DJB.

Scott
fonte
Obrigado ao MestreLion ⁠⁠ por postar este link .
Scott
0

Acabei de acertar o mesmo problema e consegui resolvê-lo

  1. Desvinculando a conta pela interface da web do Dropbox:

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

  2. Removendo o ~/.dropboxdiretório para o usuário em execução dropboxd.

    rm -r ~/.dropbox
    
  3. Pode ser necessário limpar o ~/Dropboxdiretório também.

O primeiro passo pode não ser necessário, mas eu já tinha feito isso antes da remoção ~/.dropbox, o que me permitiu configurá-lo novamente.

Lembre-se de acessar cdo diretório em que deseja ser a pasta raiz do Dropbox. Então funcionou bem para mim.

Ben M
fonte
Olá, e seja bem-vindo ao SuperUser. Você pode elaborar sua resposta? Especificamente, faça uma análise mais detalhada do que o usuário precisa fazer?
Service Manager
0

Eu tive o mesmo problema. Eu queria usar o dropbox para sincronizar um grande disco rígido secundário em um servidor ubuntu. O que fiz foi criar um link simbólico do disco rígido secundário para o diretório inicial antes de instalar o dropbox

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

Instale o Dropbox somente após concluir a etapa acima.

Dessa forma, o Dropbox no diretório inicial é o link simbólico e a pasta real é de onde você ligou.

Marcus Trenton
fonte