Come posso cambiare la directory di Dropbox su un server GNU / Linux senza testa?


22

Ho installato Dropbox 2.0.0 tramite riga di comando sul mio server di casa (Ubuntu Server 12.04) da utilizzare per i backup automatici fuori sede, ma non riesco a cambiare la directory che il demone Dropbox mantiene sincronizzato.

Ho provato quanto segue:

I documenti ufficiali dicono di usare l'applicazione desktop, che non è applicabile nella mia situazione. Tuttavia, ho installato l'app desktop sul mio computer desktop e ho cambiato il percorso della cartella predefinita, ma non riesco a trovare dove questa modifica è memorizzata nella directory ~ / .dropbox /, quindi posso fare la stessa modifica sul server.

Questa pagina (e molte altre) raccomanda uno script Python per fare il lavoro. Guardando lo script, apre un database SQLite chiamato ~ / .dropbox / dropbox.db, che non esiste sulla mia installazione di Dropbox, facendomi credere che lo script non sia aggiornato.

Questo thread del forum suggerisce di inserire manualmente la riga richiesta nel database config.db, cosa che ho fatto, ma non ha fatto alcuna differenza. Ho controllato lo stesso file di database sul mio computer desktop e non ha la chiave dropbox_path, quindi presumo che le informazioni in quel thread non siano aggiornate per la versione 2.0.

Ho provato ad avviare la procedura guidata di configurazione della GUI di Dropbox su SSH con l'inoltro X11, come suggerito in una delle risposte, ma il binario deve rilevare l'assenza di un'installazione X11 locale e avvia invece un demone della riga di comando, che non fornisce alcun mezzo per cambia l'opzione di cui ho bisogno.

Attualmente sto usando un link simbolico, come suggerito come risposta, ma questo è un kludge . Vorrei sapere il modo corretto di apportare la modifica.

Come posso cambiare la directory di Dropbox su un server GNU / Linux senza testa?

Aggiornamento: ho abbandonato Dropbox e ho iniziato a usare Copia . I loro strumenti e supporto Linux sono di gran lunga superiori a Dropbox. Lascio questa domanda qui nel caso qualcuno, un giorno, possa rispondere.


La mia risposta, tuttavia, se questo è il tuo server di casa perché non connetti semplicemente uno schermo ad esso, apporta le modifiche e togli lo schermo di nuovo?
terdon,

@terdon, non c'è X11 per eseguire l'app desktop Dropbox.
XX

Ah, ok, abbastanza giusto, prova la mia risposta, dovrebbe funzionare. Il mio server headless domestico in realtà ha X, non è avviato di default e non è collegato alcuno schermo, ecco perché l'ho chiesto. Ho testato la mia risposta su un vero server senza testa e senza X11 e ha funzionato. L'inoltro X11 utilizza il server X locale e non è necessario che sia in esecuzione sul computer remoto.
terdon,

Qualche opzione migliore ora che Copia non c'è più? "La copia è stata interrotta il 1 ° maggio 2016. Come ex utente di Copy, pensiamo che ti piacerà Trove." - ci hai provato?
Xen2050,

Risposte:


11

Potresti semplicemente creare un link simbolico a ~/Dropbox

ln -s <dir-that-you-want-to-sync> ~/Dropbox

3
La domanda chiede "Come posso cambiare la directory di Dropbox ...", il collegamento simbolico non è la risposta.
XX

4
Ma si occupa del motivo per cui si desidera modificare la directory di Dropbox, cfr. Problema XY
Aditya,

In realtà. Penso che non funzionerà, ricordo di avere avuto problemi con i collegamenti simbolici che non funzionavano con Dropbox.
terdon,

3
Il collegamento simbolico funziona ed è quello che stavo usando prima di porre questa domanda, ma è un Kludge. Sono venuto qui per scoprire il modo corretto di apportare la modifica. Aggiornerò la domanda per riflettere questo.
XX

Questo non funziona se devi spostare la tua cartella Dropbox fuori dalla tua home directory, ad esempio se vuoi che altri utenti possano accedere al contenuto della tua cartella Dropbox. La soluzione di ikandar sotto ha funzionato per me, per questa situazione.
jesse.r,

6

Quindi ecco il mio trucco:

Per prima cosa rimuovo tutte le cartelle correlate create nella mia cartella home

rm -rf ~/.dropbox-dist

Rimuovo anche la cartella predefinita di Dropbox:

rm -rf ~/Dropbox

Quindi ho reinstallato il demone dropbox definendo HOME env var in questo modo:

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

Quindi, avvia manualmente il demone dropboxd eseguendo:

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

Quindi aspetta fino al termine.


1
Nella mia esperienza, devi anche rimuovere ~ / .dropbox, altrimenti il ​​passo 4 si lamenterà del fatto che il computer sia già collegato e non ti consentirà di procedere all'interno di / data / other_folder.
jesse.r,

Grazie, ha funzionato per me. Avvertenze: 1. Ricorda che i tuoi dati vivranno in /data/other_folder/Dropbox2. Creerà alcuni altri file dot all'interno other_folder, ad esempio quando avvia il tuo browser per l'accesso iniziale. Potresti provare a cancellarli in seguito. 3. È necessario utilizzare HOME=...ogni volta che si avvia Dropbox. (Ho provato a spostare le .dropbox*cartelle nella mia vera casa dopo che tutto funzionava, ma questo ha appena rotto l'installazione.)
joeytwiddle

4

Questo è un vero difetto dell'applicazione Linux. Nelle versioni precedenti è possibile modificare il file delle impostazioni. Nella versione più recente sembra che l'unica soluzione sia cambiare la $HOMEvariabile prima dell'avvio di Dropbox.

Supponiamo di voler visualizzare la cartella "Dropbox" /foo/bar.

  1. Installa Dropbox su /foo/bar/.dropbox-dist.
  2. Scarica lo script Python per controllare Dropbox dalla pagina Dropbox di Linux .
  3. In questo script, di seguito import osaggiungi una riga:os.environ["HOME"] = "/foo/bar"
  4. Dropbox controllato / avviato tramite lo script di controllo ora pensa che /foo/bar/sia tuo /home/username/.

Ciò significa che quando si utilizza lo script di controllo ora cerca /foo/bar/.dropbox-dist/dropboxdi eseguire il demone. I file di configurazione verranno scritti in /foo/bar/.dropbox/. La /foo/bar/Dropbox/cartella verrà utilizzata per la sincronizzazione dei file.


Consiglio eccellente! Aiutato molto Abbinalo a ln -s ~/dropbox.py /usr/local/bin/dropboxper scrivere meno!
Chris McKnight,

Questo funziona benissimo per me, anche se quando provo a interrompere il dropbox ricevo un messaggio che dice Dropbox isn't responding!. Sembra però che smetta. Un po 'strano.
ohruunuruus,

È interessante notare che la creazione di uno script in /usr/local/binset HOMEprima di eseguire lo script Python (anziché modificarlo con lo stesso script os.environ["HOME"]) sembra aver ripulito.
ohruunuruus,

0

Se hai sshaccesso al computer in questione, potresti essere in grado di avviare l' dropboxapplicazione desktop sul server senza testa e visualizzarla sul tuo computer locale:

  1. Connettersi al server utilizzando il port forwarding X11

    ssh -Y user@server
    
  2. Ora avvia l'app dropbox, dovrebbe apparire sullo schermo locale

    ~/.dropbox-dist/dropbox
    

    Potrebbe richiedere del tempo a seconda della connessione di rete. Non arrenderti se non ricevi un messaggio di errore. Posso confermare che questo ha funzionato quando mi sono collegato dalla mia casella Debian a un server Ubuntu remoto che non eseguiva alcun server X. Dopo alcuni secondi, una seconda icona di Dropbox è apparsa sulla barra delle applicazioni locale e da lì ho potuto accedere / modificare le opzioni dell'installazione remota di Dropbox.

Ora, alcuni dettagli potrebbero cambiare dal momento che sto usando Dropbox 1.6.18 ma le basi dovrebbero essere le stesse. Nel caso in cui il nome o il percorso dell'app siano cambiati, è così che ho scoperto quale comando devo eseguire per avviare l'app desktop Dropbox:

  1. Ottieni l'elenco dei processi attualmente in esecuzione

    top -cbd .10 -n 1 | sort > no_drop.txt
    
  2. Avvia l'app Dropbox (fai clic con il pulsante destro del mouse sull'icona di Dropbox nella barra delle applicazioni e scegli "Preferenze ...") e ripeti

    top -cbd .10 -n 1 | sort > drop.txt
    
  3. Confronta i file per trovare il comando pertinente

    diff drop.txt no_drop.txt
    

1
Non esiste alcuna app per la GUI da inoltrare, solo dropboxd, il demone Dropbox.
XX

Hai provato l' tope difftrucco che ho suggerito? Avvia l'app sul tuo computer locale, qualcosa deve essere avviato, quindi c'è un comando. Se, nella nuova versione, l'unico comando è il demone, quindi avvia il demone, verrà comunque visualizzato sulla barra delle applicazioni.
terdon,

Sul mio computer desktop, l'esecuzione di ~ / dropbox-dist / dropbox avvia una procedura guidata di configurazione della GUI. Sul server, tramite la connessione SSH con l'inoltro X11 attivo, ~ / dropbox-dist / dropbox lancia un demone che mi dice di andare a un URL specifico per "collegare questa macchina". Sia il server che il desktop utilizzano lo stesso archivio esatto per installare i file della casella personale. Nell'archivio i soli due file eseguibili sono dropbox e dropboxd, il successivo è solo uno script di shell per impostare LD_LIBRARY_PATH e avviare il primo.
XX

Hmm, il mio server remoto è stato collegato. Se ricordo bene, dovevo avviare un browser grafico ( lynximpossibile farlo) sul computer remoto (usando sempre l'inoltro X11) e collegare il computer usando quel browser. Prova a farlo e poi a riavviarlo ~/dropbox-dist/dropbox. Almeno abbiamo confermato che funziona, il demone che menzioni è grafico e viene visualizzato sullo schermo locale giusto? Pertanto, una volta collegato il server al tuo account, dovresti essere in grado di configurarlo come descritto nella mia risposta.
terdon,

Era collegato, ho appena cancellato la configurazione da ~ / .dropbox per ricominciare da zero. "il demone che menzioni è grafico e viene visualizzato sullo schermo locale giusto?" No, non è grafico quando eseguito sul server. Deve rilevare l'assenza di X11 e passare alla modalità solo riga di comando, nonostante l'inoltro X11 sia attivo.
XX

0

Questo potrebbe essere quello che stai cercando:

Imposta Dropbox su un server Linux senza GUI

Mi scuso per aver semplicemente lanciato un URL invece di descrivere le procedure qui. Sono al lavoro e non posso elaborarne altri adesso. Successivamente posso espandere la risposta, ma non voglio perdere questo prezioso URL con la tua soluzione.


0

TechRepublic ha una pagina - Imposta Dropbox su un server Linux senza GUI - che afferma di risolvere questo problema:

... Ci sono strumenti GUI forniti per gestire Dropbox e configurarlo per [Linux, Windows e OS X]. Ma cosa succede se si desidera collegare un computer Linux che non ha una GUI? È possibile, con un po 'di lavoro, far funzionare Dropbox senza una GUI, permettendoti di sincronizzare i file con i server che eseguono senza testa o in cui un account utente potrebbe non essere sempre connesso.

    ︙

Iniziare:

# 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

Utilizzare plat=lnx.x86se si desidera il client a 32 bit. Questo crea una directory temporanea per i nostri file di installazione di Dropbox e scarica due script Python necessari: dbmakefakelib.py che crea copie stub false delle librerie GUI in modo che il demone dropboxd si avvii e dbreadconfig.pyche visualizza le informazioni sulla configurazione di Dropbox .

Decidi quale utente eseguirà il client Dropbox; questo potrebbe essere un utente dedicato o potrebbe essere un utente normale. Puoi anche avere più di un'istanza Dropbox in esecuzione sul sistema, quindi puoi scegliere di configurarla per più utenti (anche se ogni utente può eseguire solo un'istanza Dropbox). Per questo esempio, avremo creato un utente speciale "dropbox" che eseguirà questo client 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?

Lo script dbmakefakelib.py richiede gcc, quindi è necessario che gcc sia installato sul sistema. Questo crea copie stub false delle librerie della GUI in modo da avviare dropboxd. Alla fine, puoi vedere che ha lanciato dropboxd; premi Ctrl+ Cper uscire dallo script. dropboxd dovrebbe essere ancora in esecuzione in background:

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

Ora che Dropbox è in esecuzione, dobbiamo collegarlo a un account esistente:

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

Prendi l'host_id dall'alto. Accedi all'interfaccia web di Dropbox e, una volta effettuato l'accesso, visita manualmente questo URL:

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

Sostituisci [HOST_ID]con l'host_id che dbreadconfig.py genera. Quando lo hai fatto, il sito Dropbox ti dirà che hai collegato correttamente un nuovo computer. Vai alle impostazioni del tuo account, quindi su I miei computer e vedrai il nuovo computer elencato.

Se non hai interrotto il processo dropboxd avviato da dbmakefakelib.py, scoprirai che sta già scaricando i file da Dropbox a ~ / Dropbox / in background.

Per avviare il demone dropboxd in background all'avvio, è possibile aggiungere quanto segue al proprio script init /etc/rc.d/rc.local:

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

Questo avvierà dropboxd in background con i privilegi dell'utente per il quale è installato (in questo caso, l'utente è "dropbox"). Se vuoi fare un initscript a livello di sistema, visita il wiki di Dropbox dove ci sono alcuni esempi che puoi usare, inclusi initscript per Fedora / Red Hat e Debian / Ubuntu. Ha anche esempi su come impostare Dropbox in esecuzione sotto i demoniols di DJB.


Grazie a MestreLion ⁠⁠ per aver pubblicato questo link .
Scott,

0

Ho appena riscontrato lo stesso problema e sono stato in grado di risolverlo

  1. Scollegamento dell'account tramite l'interfaccia utente Web di Dropbox:

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

  2. Rimozione della ~/.dropboxdirectory per l'utente in esecuzione dropboxd.

    rm -r ~/.dropbox
    
  3. Potrebbe essere necessario ripulire anche la ~/Dropboxdirectory.

Il primo passo potrebbe non essere necessario, ma l'avevo già fatto prima di rimuoverlo ~/.dropbox, il che alla fine mi ha permesso di configurarlo di nuovo.

Ricorda cdla directory che desideri essere la cartella principale di Dropbox. Quindi ha funzionato bene per me.


Ciao e benvenuto su SuperUser. Puoi approfondire la tua risposta? In particolare, dare un resoconto più approfondito di ciò che l'utente deve fare?
Service Manager

0

Ho avuto lo stesso problema. Volevo usare Dropbox per sincronizzare un grande disco rigido secondario su un server Ubuntu. Quello che ho fatto è stato creare un collegamento simbolico dal disco rigido secondario alla mia home directory prima di installare dropbox

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

Installa Dropbox solo dopo aver completato il passaggio precedente.

In questo modo, Dropbox nella directory Home è il collegamento simbolico e la cartella reale è da dove hai mai fatto il collegamento simbolico.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.