ヘッドレスGNU / LinuxサーバーのDropboxディレクトリを変更するにはどうすればよいですか?


22

ホームサーバー(Ubuntu Server 12.04)にコマンドライン経由でDropbox 2.0.0をインストールして、オフサイト自動バックアップに使用しましたが、Dropboxデーモンが同期し続けるディレクトリを変更できません。

私は次を試しました:

公式ドキュメントでは、デスクトップアプリケーションを使用すると言われていますが、これは私の状況では適用されません。ただし、デスクトップコンピューターにデスクトップアプリをインストールし、既定のフォルダーの場所を変更しましたが、この変更が〜/ .dropbox /ディレクトリーのどこに保存されているかが見つからないため、サーバーで同じ変更を行うことができます。

このページ(および他のいくつかのページ)では、ジョブを実行するためのPythonスクリプトを推奨ています。スクリプトを見ると、Dropboxのインストールには存在しない〜/ .dropbox / dropbox.dbというSQLiteデータベースが開かれ、スクリプトが古いと思われます。

このフォーラムスレッドは、config.dbデータベースに必要な行を手動で挿入することを提案していますが、私はそれを行いましたが、違いはありませんでした。デスクトップマシンで同じデータベースファイルをチェックしましたが、dropbox_pathキーがないため、そのスレッドの情報もバージョン2.0では最新ではないと推測しています。

回答の1つで提案されているように、X11転送を使用してSSH経由でDropbox GUI構成ウィザードを起動しようとしましたが、バイナリはローカルX11インストールの不在を検出する必要があり、代わりにコマンドラインデーモンを起動します必要なオプションを変更します。

私は現在、答えとして提案されているように、シンボリックリンクを使用していますが、これは手間がかかります。変更を行う正しい方法を知りたいです。

ヘッドレスGNU / LinuxサーバーのDropboxディレクトリを変更するにはどうすればよいですか?

更新: Dropboxを廃止し、Copyの使用を開始しました。彼らのLinuxツールとサポートは、Dropboxよりもはるかに優れています。誰かがいつか答えられるように、この質問をここに残します。


私の答えにもかかわらず、これがあなたのホームサーバーである場合、画面に接続して、変更を加えて再び画面を取り去ってみませんか?
テルドン

@ terdon、Dropboxデスクトップアプリを実行するX11はありません。
xxは

ああ、まあ、まあ、私の答えを試してみてください、それはうまくいくはずです。私のホームヘッドレスサーバーには実際にXがあり、デフォルトでは起動されず、画面も接続されていません。だから私は尋ねました。しかし、実際のヘッドレスでX11のないサーバーで答えをテストしましたが、うまくいきました。X11転送はローカル Xサーバーを使用し、リモートマシンで実行する必要はありません。
テルドン

コピーがなくなった今、より良いオプションはありますか?「コピーは2016年5月1日に終了しました。以前のコピーユーザーとして、Troveが好きになると思います。」-試した?
Xen2050

回答:


11

シンボリックリンクを作成するだけです ~/Dropbox

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

3
質問は「どうすればDropboxディレクトリを変更できますか...」と尋ねますが、シンボリックリンクは答えではありません。
xx

4
ただし、Dropboxディレクトリを変更する理由は考慮されています。XY問題
アディティア

実際に。これは機能しないと思います。Dropboxで動作しないシンボリックリンクに問題があることを覚えています。
テルドン

3
シンボリックリンクは機能します。この質問をする前に使用していたものですが、それはKludgeです。変更を行う正しい方法を見つけるためにここに来ました。これを反映するために質問を更新します。
xxは

Dropboxフォルダーをホームディレクトリから移動する必要がある場合、たとえば、他のユーザーがDropboxフォルダーのコンテンツにアクセスできるようにする場合、これは機能しません。この状況では、以下のikandarのソリューションが役に立ちました。
jesse.r

6

だからここに私のトリックがあります:

まず、ホームフォルダーに作成されたすべての関連フォルダーを削除します

rm -rf ~/.dropbox-dist

Dropboxのデフォルトフォルダーも削除します。

rm -rf ~/Dropbox

そこで、次のようにHOME env varを定義して、dropboxデーモンを再インストールしました。

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

次に、次のコマンドを実行して、dropboxdデーモンを手動で起動します。

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

その後、完了するまで待ちます。


1
私の経験では、〜/ .dropboxを削除する必要もあります。そうしないと、ステップ4でコンピューターが既にリンクされていると文句を言い、/ data / other_folder内で続行できなくなります。
jesse.r

おかげで、これは私のために働いた。警告:1.データはライブで保存されることに注意してください/data/other_folder/Dropbox。2. other_folderたとえば、最初のログインでブラウザを起動したときに、他のドットファイルが内部に作成されます。後でこれらをクリアしてみてください。3. HOME=...Dropboxを起動するたびに使用する必要があります。(.dropbox*すべてが機能してからフォルダーを実際の自宅に移動しようとしましたが、セットアップが壊れただけです。)
joeytwiddle

4

これは、Linuxアプリケーションの本当の欠点です。古いバージョンでは、設定ファイルを変更できました。最新バージョンでは、$HOMEDropboxが起動する前に変数を変更することが唯一の解決策と思われます。

「Dropbox」フォルダをに表示するとし/foo/barます。

  1. Dropboxをにインストールし/foo/bar/.dropbox-distます。
  2. Linux DropboxページからDropboxを制御するPythonスクリプトをダウンロードします。
  3. このスクリプトでは、次import osの行を追加します。os.environ["HOME"] = "/foo/bar"
  4. 制御スクリプトを介して制御/開始されたDropbox /foo/bar/は、あなたのものと考えています/home/username/

これは、制御スクリプトを使用するときに/foo/bar/.dropbox-dist/dropbox、デーモンの実行を探すことを意味します。構成ファイルはに書き込まれ/foo/bar/.dropbox/ます。この/foo/bar/Dropbox/フォルダーはファイルの同期に使用されます。


素晴らしいヒント!たくさん助けました。ln -s ~/dropbox.py /usr/local/bin/dropboxタイピングを少なくするためにそれを組み合わせてください!
クリスマクナイト

Dropboxを停止しようとすると、というメッセージが表示されますが、これは私には最適ですDropbox isn't responding!。止まるようです。ちょっと変。
オーリュヌルス

おもしろいことに、Pythonスクリプトを実行する前に(でスクリプト自体を変更するのではなく)/usr/local/binセットでスクリプトを作成すると、これがクリーンアップされたようです。HOMEos.environ["HOME"]
オールーヌルス

0

ssh問題のマシンにアクセスできる場合dropboxは、ヘッドレスサーバーでデスクトップアプリケーションを起動し、ローカルマシンに表示できる場合があります。

  1. X11ポート転送を使用してサーバーに接続する

    ssh -Y user@server
    
  2. Dropboxアプリを起動すると、ローカル画面に表示されるはずです

    ~/.dropbox-dist/dropbox
    

    ネットワーク接続によっては時間がかかる場合があります。エラーメッセージが表示されなくてもgiveめないでください。DebianサーバーからXサーバーを実行していないリモートのUbuntuサーバーに接続したときに、これが機能したことを確認できます。数秒後、2番目のDropboxアイコンがローカルタスクバーに表示され、そこからリモートDropboxインストールのオプションにアクセス/変更できました。

現在、Dropbox 1.6.18を使用しているため、一部の詳細が変更される場合がありますが、基本は同じです。アプリの名前または場所が変更された場合、これはDropboxデスクトップアプリを起動するために実行する必要があるコマンドを見つける方法です。

  1. 現在実行中のプロセスのリストを取得します

    top -cbd .10 -n 1 | sort > no_drop.txt
    
  2. Dropboxアプリを起動し(タスクバーのDropboxアイコンを右クリックして[設定...]を選択します)、繰り返します

    top -cbd .10 -n 1 | sort > drop.txt
    
  3. ファイルを比較して、関連するコマンドを見つけます

    diff drop.txt no_drop.txt
    

1
転送するGUIアプリはなく、Dropboxデーモンであるdropboxdのみです。
xx

あなたがしようとしましたtopし、diff私が提案トリック?ローカルマシンでアプリを起動します。何かを起動する必要があるため、コマンドがあります。新しいバージョンで唯一のコマンドがデーモンである場合、デーモンを起動すると、タスクバーに表示されます。
テルドン

デスクトップマシンで〜/ dropbox-dist / dropboxを実行すると、GUI構成ウィザードが起動します。サーバー上で、X11転送をオンにしたssh接続を介して、〜/ dropbox-dist / dropboxはデーモンを起動し、特定のURLに移動して「このマシンをリンクする」ように指示します。サーバーとデスクトップの両方がまったく同じアーカイブを使用して、Dropboxファイルをインストールしています。アーカイブでは、2つの実行可能ファイルはdropboxとdropboxdのみです。後者は、LD_LIBRARY_PATHを設定して前者を起動するための単なるシェルスクリプトです。
xx

うーん、私のリモートサーバーリンクされいます。記憶が正しければlynx、リモートマシン(常にX11転送を使用)でグラフィカルブラウザーを起動し(できませんでした)、そのブラウザーを使用してマシンをリンクする必要がありました。それを試してから、もう一度起動~/dropbox-dist/dropboxしてください。少なくとも、それが機能することを確認しました。あなたが言及したデーモンはグラフィカルで、ローカル画面に表示されますか?したがって、サーバーをアカウントにリンクしたら、私の回答で説明したようにサーバーを構成できるはずです。
テルドン

リンクされていたので、〜/ .dropboxから構成を削除して、最初から始めました。「あなたが言及したデーモンはグラフィカルであり、ローカル画面に表示されますか?」いいえ、サーバー上で実行するときはグラフィカルではありません。X11転送がオンになっているにもかかわらず、X11の不在を検出し、コマンドラインのみのモードに入る必要があります。
xx


0

TechRepublicには、この問題を解決すると主張するページ(GUIなしのLinuxサーバーでDropboxをセットアップする)があります。

…Dropboxを管理し、[Linux、Windows、およびOS X]用に設定するためのGUIツールが提供されています。しかし、GUIがないLinuxコンピューターをリンクしたい場合はどうなりますか?少しの作業で、GUIなしでDropboxを実行し、ヘッドレスで実行されているサーバーや、ユーザーアカウントが常にログインしていないサーバーとファイルを同期させることができます。

    ︙

始める:

# 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

plat=lnx.x8632ビットクライアントが必要な場合に使用します。これにより、Dropboxインストールファイルの一時ディレクトリが作成され、2つの必要なPythonスクリプトがダウンロードされますdbmakefakelib.py 。GUI スクリプトの偽のスタブコピーを作成して、dropboxdデーモンが起動し、dbreadconfig.pyDropboxの構成情報が表示されます。

Dropboxクライアントを実行するユーザーを決定します。これは専用ユーザーでも、通常のユーザーでもかまいません。システム上で複数のDropboxインスタンスを実行することもできるため、複数のユーザーに対してセットアップすることもできます(ただし、各ユーザーが実行できるDropboxインスタンスは1つだけです)。この例では、このDropboxクライアントを実行する特別なユーザー「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?

dbmakefakelib.pyスクリプトにはgccが必要なので、システムにgccをインストールする必要があります。これにより、GUIライブラリの偽のスタブコピーが作成され、dropboxdが起動します。最後に、dropboxdが起動したことがわかります。Ctrl+ Cを押してスクリプトを終了します。dropboxdはまだバックグラウンドで実行されているはずです。

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

Dropboxが実行されたので、既存のアカウントにリンクする必要があります。

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

上からhost_idを取得します。Dropbox Webインターフェースにログインし、ログインしたら、次のURLに手動でアクセスします。

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

置き換え[HOST_ID]dbreadconfig.pyが出力するHOST_IDで。それを行うと、Dropboxサイトは、新しいコンピューターを正常にリンクしたことを通知します。[アカウント設定]、[マイコンピューター]の順に移動すると、新しいコンピューターが一覧表示されます。

dbmakefakelib.pyが開始したdropboxdプロセスを強制終了していない場合、Dropboxからバックグラウンドで〜/ Dropbox /にファイルを既にダウンロードしていることがわかります。

ブート時にdropboxdデーモンをバックグラウンドで起動するには、/ etc / rc.d / rc.local initスクリプトに次を追加できます。

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

これにより、インストール先のユーザーの権限でこのバックグラウンドでdropboxdが起動します(この場合、ユーザーは「dropbox」です)。システム全体のinitscriptを実行したい場合は、Dropbox wikiにアクセスしてください。Fedora/ Red HatおよびDebian / Ubuntuのinitscriptを含む、使用できるいくつかの例があります。また、DJBのdaemontoolsの下で実行されるDropboxをセットアップする方法の例もあります。


ありがとう このリンク投稿くれた MestreLion⁠⁠にます。
スコット

0

私はちょうど同じ問題にぶつかり、それを解決することができました

  1. Dropbox Web UIからアカウントのリンクを解除します。

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

  2. ~/.dropbox実行しているユーザーのディレクトリを削除しますdropboxd

    rm -r ~/.dropbox
    
  3. ~/Dropboxディレクトリのクリーンアップも必要になる場合があります。

最初のステップは必要ないかもしれませんが、削除する前にすでにそれを行っていたので~/.dropbox、最終的にはセットアップをやり直すことができました。

cdDropboxのルートフォルダーにしたいディレクトリを忘れないでください。それはそれから私のためにうまくいった。


こんにちは、SuperUserへようこそ。あなたの答えを詳しく説明してもらえますか?具体的には、ユーザーが何をする必要があるかについてより深く掘り下げますか?
サービスマネージャー

0

同じ問題がありました。Dropboxを使用して、ubuntuサーバー上の大きなセカンダリハードディスクを同期したかったのです。Dropboxをインストールする前に、セカンダリハードディスクからホームディレクトリへのシンボリックリンクを作成しました

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

上記の手順を完了してからDropboxをインストールしてください。

このように、ホームディレクトリのDropboxはシンボリックリンクであり、実際のフォルダーはシンボリックリンクされた場所です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.