web-dev-qa-db-ja.com

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

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

私は以下を試しました:

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

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

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

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

答えとして提案されているように、私は現在シンボリックリンクを使用していますが、これは kludge です。変更を加える正しい方法を教えてください。

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

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

24
x-x

~/Dropboxへのシンボリックリンクを作成できます

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

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

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

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

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

8
ikandars

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

「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/フォルダーは、ファイルの同期に使用されます。

5
john doe

これはあなたが探しているものかもしれません:

GUIのない​​LinuxサーバーでDropboxをセットアップ

ここで手順を説明する代わりに、URLを単に投げたことをお詫びします。仕事中なので、これ以上詳しく説明することはできません。後で答えを広げることができますが、ソリューションでこの貴重なURLを失いたくないだけです。

0
MestreLion

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

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

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

    ~/.dropbox-dist/dropbox
    

    ネットワーク接続によっては、時間がかかる場合があります。エラーメッセージが出なくても諦めないでください。これは、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
    
0
terdon

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

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

上記の手順を完了した後にのみ、Dropboxをインストールしてください。

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

0
marcus trenton

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

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

始める:

# 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

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

Dropboxクライアントを実行するユーザーを決定します。これは、専用ユーザーでも、通常のユーザーでもかまいません。システムで複数のDropboxインスタンスを実行することもできるため、複数のユーザー用に設定することもできます(ただし、各ユーザーは1つのDropboxインスタンスしか実行できません)。この例では、この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ウェブインターフェースにログインし、ログインしたら、次の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&"

これにより、ドロップボックスがインストールされたユーザーの権限(この場合、ユーザーは「ドロップボックス」)でバックグラウンドでドロップボックス化されます。システム全体のinitscriptを実行する場合は、Dropbox wikiにアクセスしてください。Fedora/ Red HatやDebian/Ubuntuのinitscriptsなど、使用できる例がいくつかあります。また、DJBのデーモンツールの下で実行されるDropboxを設定する方法の例もあります。

0
Scott

私は同じ問題に遭遇し、それによってそれを解決することができました

  1. DropboxウェブUIからアカウントのリンクを解除する:

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

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

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

最初の手順は必要ないかもしれませんが、~/.dropboxを削除する前にすでにそれを行っていたため、最終的に再設定できました。

Dropboxルートフォルダーにしたいディレクトリにcdすることを忘れないでください。その後、私にとってはうまくいきました。

0
Ben M