Wie ändere ich das Dropbox-Verzeichnis auf einem kopflosen GNU / Linux-Server?


22

Ich habe Dropbox 2.0.0 über die Befehlszeile auf meinem Heimserver (Ubuntu Server 12.04) installiert , um sie für automatische Offsite-Sicherungen zu verwenden, kann aber das Verzeichnis nicht ändern, das der Dropbox-Dämon synchronisiert.

Ich habe Folgendes versucht:

Die offiziellen Dokumente geben an, die Desktopanwendung zu verwenden, die in meiner Situation nicht anwendbar ist. Ich habe jedoch die Desktop-App auf meinem Desktop-Computer installiert und den Standardordner geändert, kann jedoch nicht feststellen, wo diese Änderung im Verzeichnis ~ / .dropbox / gespeichert ist, sodass ich dieselbe Änderung auf dem Server vornehmen kann.

Diese Seite (und einige andere) empfehlen ein Python-Skript , um die Aufgabe zu erledigen. Wenn ich mir das Skript anschaue, öffnet es eine SQLite-Datenbank mit dem Namen ~ / .dropbox / dropbox.db, die in meiner Dropbox-Installation nicht vorhanden ist, was mich zu der Annahme veranlasst, dass das Skript veraltet ist.

Dieser Forenthread schlägt vor, die erforderliche Zeile manuell in die config.db-Datenbank einzufügen, was ich getan habe, aber es machte keinen Unterschied. Ich habe dieselbe Datenbankdatei auf meinem Desktopcomputer überprüft und sie enthält keinen dropbox_path-Schlüssel. Daher gehe ich davon aus, dass die Informationen in diesem Thread auch für Version 2.0 veraltet sind.

Ich habe versucht, den Dropbox-GUI-Konfigurationsassistenten über SSH mit X11-Weiterleitung zu starten, wie in einer der Antworten vorgeschlagen, aber die Binärdatei muss feststellen, dass keine lokale X11-Installation vorhanden ist, und stattdessen wird ein Befehlszeilendämon gestartet, für den dies nicht möglich ist ändere die Option, die ich brauche.

Ich verwende derzeit einen Symlink, der als Antwort vorgeschlagen wird, aber dies ist ein Trick . Ich würde gerne wissen, wie ich die Änderung richtig vornehmen kann.

Wie ändere ich das Dropbox-Verzeichnis auf einem kopflosen GNU / Linux-Server?

Update: Ich habe Dropbox über Bord geworfen und mit dem Kopieren begonnen . Ihre Linux-Tools und -Support sind Dropbox weit überlegen. Ich lasse diese Frage hier, falls jemand sie eines Tages beantworten kann.


Ungeachtet meiner Antwort, wenn dies Ihr Heimserver ist, warum schließen Sie nicht einfach einen Bildschirm an, nehmen die Änderungen vor und nehmen den Bildschirm wieder weg?
Terdon

@terdon, Es gibt kein X11, mit dem die Dropbox-Desktop-App ausgeführt werden kann.
xx

Ah, OK, fair genug, versuche meine Antwort, dann sollte es funktionieren. Mein Heim-Headless-Server hat tatsächlich X, er wird nur nicht standardmäßig gestartet und es ist kein Bildschirm angeschlossen. Deshalb habe ich gefragt. Ich habe meine Antwort auf einem echten kopflosen Server ohne X11 getestet und es hat funktioniert. Die X11-Weiterleitung verwendet den lokalen X-Server und muss nicht auf dem Remotecomputer ausgeführt werden.
Terdon

Gibt es jetzt bessere Optionen, wenn Copy weg ist? "Copy wurde am 1. Mai 2016 eingestellt. Als ehemaliger Copy-Benutzer werden Sie wahrscheinlich Trove mögen." - das ausprobiert?
Xen2050

Antworten:


11

Sie können einfach einen Symlink zu erstellen ~/Dropbox

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

3
Die Frage lautet: "Wie kann ich das Dropbox-Verzeichnis ändern ...", Symlinking ist nicht die Antwort.
xx

4
Aber es kümmert sich um den Grund, aus dem Sie das Dropbox-Verzeichnis ändern möchten, vgl. XY-Problem
Aditya

Tatsächlich. Ich denke, das wird nicht funktionieren. Ich erinnere mich, dass ich Probleme mit Symlinks hatte, die nicht mit Dropbox funktionieren.
Terdon

3
Symlinking funktioniert, und es ist das, was ich verwendet habe, bevor ich diese Frage gestellt habe, aber es ist ein Kludge. Ich bin hierher gekommen, um herauszufinden, wie ich die Änderung richtig vornehmen kann. Ich werde die Frage aktualisieren, um dies widerzuspiegeln.
xx

Dies funktioniert nicht, wenn Sie Ihren Dropbox-Ordner aus Ihrem Ausgangsverzeichnis verschieben müssen, z. B. wenn andere Benutzer auf den Inhalt Ihres Dropbox-Ordners zugreifen sollen. Die folgende Lösung von ikandar hat in dieser Situation für mich funktioniert.
Jesse.r

6

Also hier ist mein Trick:

Zuerst entferne ich alle zugehörigen Ordner, die in meinem Ausgangsordner erstellt wurden

rm -rf ~/.dropbox-dist

Ich entferne auch den Dropbox-Standardordner:

rm -rf ~/Dropbox

Also habe ich den Dropbox-Daemon neu installiert, indem ich HOME env var wie folgt definiert habe:

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

Starten Sie anschließend den dropboxd-Dämon manuell, indem Sie Folgendes ausführen:

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

Warten Sie dann bis zum Ende.


1
Meiner Erfahrung nach müssen Sie auch ~ / .dropbox entfernen, da sonst in Schritt 4 beanstandet wird, dass der Computer bereits verbunden ist, und Sie nicht in / data / other_folder fortfahren können.
Jesse.r

Danke, das hat bei mir funktioniert. Vorsichtsmaßnahmen: 1. Denken Sie daran, dass Ihre Daten in /data/other_folder/Dropbox2. Es werden einige andere Punktedateien im Inneren erstellt other_folder, zum Beispiel, wenn es Ihren Browser für die erste Anmeldung startet. Sie können versuchen, diese später zu löschen. 3. Sie müssen HOME=...jedes Mal verwenden, wenn Sie dropbox starten. (Ich habe versucht, die .dropbox*Ordner in mein richtiges Zuhause zu verschieben, nachdem alles funktioniert hat, aber das hat nur das Setup
beschädigt

4

Dies ist ein echtes Manko der Linux-Anwendung. In den älteren Versionen können Sie die Einstellungsdatei ändern. In der neuesten Version scheint es die einzige Lösung zu sein, die $HOMEVariable zu ändern , bevor Dropbox gestartet wird.

Nehmen wir an, wir möchten, dass der Ordner "Dropbox" in angezeigt wird /foo/bar.

  1. Installieren Sie Dropbox auf /foo/bar/.dropbox-dist.
  2. Laden Sie das Python-Skript zur Steuerung von Dropbox von der Linux-Dropbox- Seite herunter .
  3. In diesem Skript import osfügen Sie unten eine Zeile hinzu:os.environ["HOME"] = "/foo/bar"
  4. Dropbox gesteuert / gestartet über das Kontrollskript, denkt jetzt, es /foo/bar/liegt bei Ihnen /home/username/.

Dies bedeutet, dass bei Verwendung des Kontrollskripts nun nach /foo/bar/.dropbox-dist/dropboxeiner Ausführung des Dämons gesucht wird. Konfigurationsdateien werden in geschrieben /foo/bar/.dropbox/. Der /foo/bar/Dropbox/Ordner wird für die Dateisynchronisierung verwendet.


Hervorragender Tipp! Hat mir sehr geholfen. Kombiniere das mit ln -s ~/dropbox.py /usr/local/bin/dropboxweniger Tippaufwand!
Chris McKnight

Das funktioniert gut für mich, aber wenn ich versuche, dropbox zu stoppen, bekomme ich eine Nachricht mit der Aufschrift Dropbox isn't responding!. Sieht aber so aus, als würde es aufhören. Ein bisschen seltsam.
ohruunuruus

Interessanterweise hat das Erstellen eines Skripts in /usr/local/bindiesen Sätzen HOMEvor dem Ausführen des Python-Skripts (anstatt das Skript selbst os.environ["HOME"]zu ändern) dies aufgeräumt.
ohruunuruus

0

Wenn Sie sshZugriff auf den betreffenden Computer haben, können Sie möglicherweise die dropboxDesktop-Anwendung auf dem Headless-Server starten und auf Ihrem lokalen Computer anzeigen lassen:

  1. Stellen Sie über die X11-Portweiterleitung eine Verbindung zum Server her

    ssh -Y user@server
    
  2. Starten Sie nun die Dropbox-App, sie sollte auf Ihrem lokalen Bildschirm angezeigt werden

    ~/.dropbox-dist/dropbox
    

    Je nach Netzwerkverbindung kann es eine Weile dauern. Gib nicht auf, wenn du keine Fehlermeldung bekommst. Ich kann bestätigen, dass dies funktioniert hat, wenn ich eine Verbindung von meiner Debian-Box zu einem entfernten Ubuntu-Server hergestellt habe, auf dem kein X-Server ausgeführt wurde. Nach ein paar Sekunden erschien ein zweites Dropbox-Symbol in meiner lokalen Taskleiste und ich konnte von dort aus auf die Optionen der Remote-Dropbox-Installation zugreifen / diese ändern.

Jetzt können sich einige Details ändern, da ich Dropbox 1.6.18 verwende, aber die Grundlagen sollten dieselben sein. Falls sich der Name oder der Speicherort der App geändert hat, habe ich folgendermaßen herausgefunden, welchen Befehl ich ausführen muss, um die Dropbox-Desktop-App zu starten:

  1. Ruft die Liste der aktuell ausgeführten Prozesse ab

    top -cbd .10 -n 1 | sort > no_drop.txt
    
  2. Starten Sie die Dropbox-App (klicken Sie mit der rechten Maustaste auf das Dropbox-Symbol in Ihrer Taskleiste und wählen Sie "Einstellungen ...") und wiederholen Sie den Vorgang

    top -cbd .10 -n 1 | sort > drop.txt
    
  3. Vergleichen Sie die Dateien, um den entsprechenden Befehl zu finden

    diff drop.txt no_drop.txt
    

1
Es gibt keine GUI-App zum Weiterleiten, nur dropboxd, den Dropbox-Daemon.
xx

Hast du den topund den diffTrick ausprobiert, den ich vorgeschlagen habe? Starten Sie die App auf Ihrem lokalen Computer, es muss etwas gestartet werden, daher gibt es einen Befehl. Wenn in der neuen Version der einzige Befehl der Dämon ist und der Dämon dann gestartet wird, wird er weiterhin in Ihrer Taskleiste angezeigt.
Terdon

Wenn Sie auf meinem Desktop-Computer ~ / dropbox-dist / dropbox ausführen, wird ein GUI-Konfigurationsassistent gestartet. Auf dem Server startet ~ / dropbox-dist / dropbox über die SSH-Verbindung mit X11-Weiterleitung einen Daemon, der mich auffordert, zu einer bestimmten URL zu wechseln, um diese Maschine zu verknüpfen. Sowohl der Server als auch der Desktop verwenden genau dasselbe Archiv, um die Dropbox-Dateien zu installieren. Im Archiv gibt es nur zwei ausführbare Dateien: dropbox und dropboxd. Bei der letzteren handelt es sich nur um ein Shell-Skript, mit dem LD_LIBRARY_PATH festgelegt und die erste gestartet werden kann.
xx

Hmm, mein Remote - Server ist bereits verbunden. Wenn ich mich richtig erinnere, musste ich lynxauf dem Remote-Computer einen grafischen Browser starten ( konnte es nicht) (immer mit X11-Weiterleitung) und den Computer mit diesem Browser verknüpfen. Versuchen Sie das und starten Sie es ~/dropbox-dist/dropboxerneut. Zumindest haben wir bestätigt, dass es funktioniert. Der von Ihnen erwähnte Daemon ist grafisch und wird auf Ihrem lokalen Bildschirm angezeigt, oder? Sobald Sie Ihren Server mit Ihrem Konto verknüpft haben, sollten Sie ihn daher wie in meiner Antwort beschrieben konfigurieren können.
Terdon

Es wurde verlinkt, ich habe gerade die Konfiguration von ~ / .dropbox gelöscht, um von vorne zu beginnen. "Der von Ihnen erwähnte Daemon ist grafisch und wird auf Ihrem lokalen Bildschirm angezeigt, oder?" Nein, es ist nicht grafisch, wenn es auf dem Server ausgeführt wird. Es muss das Fehlen von X11 erkennen und in den reinen Befehlszeilenmodus wechseln, obwohl die X11-Weiterleitung aktiviert ist.
xx


0

TechRepublic hat eine Seite - Dropbox auf einem GUI-freien Linux-Server einrichten - die behauptet, dieses Problem zu lösen:

… Es stehen GUI-Tools zur Verfügung, um die Dropbox zu verwalten und für [Linux, Windows und OS X] einzurichten. Aber was passiert, wenn Sie einen Linux-Computer ohne GUI verbinden möchten? Es ist mit ein wenig Arbeit möglich, Dropbox ohne GUI laufen zu lassen, so dass Sie Dateien mit Servern synchronisieren können, die kopflos laufen oder bei denen ein Benutzerkonto möglicherweise nicht immer angemeldet ist.

    ︙

Beginnen:

# 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

Verwenden plat=lnx.x86Sie diese Option, wenn Sie den 32-Bit-Client verwenden möchten. Dadurch wird ein temporäres Verzeichnis für unsere Dropbox-Installationsdateien erstellt und zwei erforderliche Python-Skripte heruntergeladen: dbmakefakelib.py Dadurch werden gefälschte Stub-Kopien der GUI-Bibliotheken erstellt, sodass der dropboxd-Dämon gestartet wird, und dbreadconfig.pyDropbox-Konfigurationsinformationen werden angezeigt.

Entscheiden Sie, welcher Benutzer den Dropbox-Client ausführen soll. Dies kann ein dedizierter Benutzer oder ein normaler Benutzer sein. Sie können auch mehr als eine Dropbox-Instanz auf dem System ausführen. Sie können sich also dafür entscheiden, sie für mehrere Benutzer einzurichten (obwohl jeder Benutzer nur eine Dropbox-Instanz ausführen kann). In diesem Beispiel haben wir einen speziellen Benutzer "dropbox" erstellt, der diesen Dropbox-Client ausführt.

# 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?

Das Skript dbmakefakelib.py erfordert gcc, daher muss gcc auf dem System installiert sein. Dadurch werden gefälschte Stub-Kopien der GUI-Bibliotheken erstellt, sodass dropboxd gestartet wird. Am Ende sehen Sie, dass dropboxd gestartet wurde. Drücken Sie Ctrl+ C, um das Skript zu beenden. dropboxd sollte noch im Hintergrund laufen:

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

Nachdem die Dropbox ausgeführt wurde, müssen wir sie mit einem vorhandenen Konto verknüpfen:

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

Besorgen Sie sich die host_id von oben. Melden Sie sich bei der Dropbox-Weboberfläche an und rufen Sie nach dem Anmelden diese URL manuell auf:

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

Ersetzen Sie [HOST_ID]durch die host_id, die dbreadconfig.py ausgibt. Wenn Sie dies getan haben, werden Sie auf der Dropbox-Site darüber informiert, dass Sie einen neuen Computer erfolgreich verbunden haben. Gehen Sie zu Ihren Kontoeinstellungen und dann zu "Meine Computer". Der neue Computer wird aufgelistet.

Wenn Sie den von dbmakefakelib.py gestarteten dropboxd-Prozess nicht beendet haben, werden Sie feststellen, dass die Dateien bereits von der Dropbox nach ~ / Dropbox / im Hintergrund heruntergeladen werden.

Um den dropboxd-Daemon beim Booten im Hintergrund zu starten, können Sie Folgendes zu Ihrem /etc/rc.d/rc.local-Init-Skript hinzufügen:

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

Dies startet dropboxd im Hintergrund mit den Rechten des Benutzers, für den es installiert ist (in diesem Fall ist der Benutzer "dropbox"). Wenn Sie ein systemweites Initscript erstellen möchten, besuchen Sie das Dropbox-Wiki. Dort finden Sie einige Beispiele, einschließlich Initscripts für Fedora / Red Hat und Debian / Ubuntu. Es enthält auch Beispiele zum Einrichten von Dropbox unter den Daemontools von DJB.



0

Ich bin auf dasselbe Problem gestoßen und konnte es durch lösen

  1. Verknüpfung des Kontos über die Dropbox-Webbenutzeroberfläche aufheben:

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

  2. Entfernen des ~/.dropboxVerzeichnisses für den Benutzer, der ausgeführt wird dropboxd.

    rm -r ~/.dropbox
    
  3. Möglicherweise müssen Sie auch das ~/DropboxVerzeichnis bereinigen .

Der erste Schritt ist möglicherweise nicht erforderlich, aber ich hatte ihn bereits vor dem Entfernen ausgeführt ~/.dropbox, sodass ich ihn letztendlich wieder einrichten konnte.

Denken cdSie daran, in das Verzeichnis zu wechseln, in dem Sie Ihr Dropbox-Stammordner sein möchten. Es hat dann gut funktioniert für mich.


Hallo und willkommen bei SuperUser. Können Sie Ihre Antwort näher erläutern? Geben Sie genauer an, was der Benutzer tun muss.
Service Manager

0

Ich hatte das gleiche Problem. Ich wollte Dropbox verwenden, um eine große sekundäre Festplatte auf einem Ubuntu-Server zu synchronisieren. Ich habe vor der Installation von dropbox einen Symlink von der sekundären Festplatte zu meinem Ausgangsverzeichnis erstellt

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

Installieren Sie Dropbox erst, nachdem Sie den obigen Schritt ausgeführt haben.

Auf diese Weise ist die Dropbox im Home-Verzeichnis der Symlink und der eigentliche Ordner ist der Ort, von dem aus Sie einen Symlink erstellt haben.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.