Dropbox on Linux without X

Dropbox を X なしの Linux で動かすのにようやく成功したので、忘れないうちにメモしておく。

Dropbox の公式 CLI クライアントを入手する

$ wget https://www.dropbox.com/download?dl=packages/dropbox.py
$ chmod a+x dropbox.py
$ mv dropbox.py ~/bin/dropbox
$ dropbox help
Dropbox command-line interface

commands:

 status       get current status of the dropboxd
 help         provide help
 puburl       get public url of a file in your dropbox
 stop         stop dropboxd
 start        start dropboxd
 filestatus   get current sync status of one or more files
 ls           list directory contents with current sync status

インストールする

$ dropbox start --install

必要なファイルが自動でダウンロードされて、~/dropbox-dist が生成される。
DISPLAY 環境変数があると GUI でインストールしようとして CUI しかないと失敗するので注意。
ついでにこの辺りで Dropbox の共有用ディレクトリを作っておく。最終的にあれば作るのはいつでもいいと思う。

$ mkdir ~/Dropbox

とりあえず起動する

$ dropbox start
Starting Dropbox...Done!

$ dropbox status
Waiting to be linked to an account...

$ dropbox stop
Dropbox daemon stopped.

とりあえず起動させると ~/.dropbox/ が生成される。stop する必要はなかったかもしれないけど念の為。

HOSTID を登録する

HOSTID と言うのがあるらしく、これを自分のアカウントに紐付けることでアカウントを認識するらしい。
HOSTID は ~/.dropbox/dropbox.db に入っている。これは sqlite3 のデータベースファイル。
これの config データベースの key が host_id のレコードの value を取り出し、さらにこれを base64 デコードし、その結果の 1 行目の先頭の文字Vを除いたものが HOSTID らしい。

sqlite3 ~/.dropbox/dropbox.db "select value from config where key='host_id'" | base64 - --decode | head -1 | cut -b 2-

入手した HOSTID を使って他のブラウザからでいいので Dropbox にログインした状態で以下のアドレスにアクセスする。

https://www.dropbox.com/cli_link?host_id=HOSTID

起動する

$ dropbox start

これで ~/Dropbox にファイルが落ちてきて、ファイルを置けば自動でアップロードされる!

参考

おまけ

以下から Dropbox に登録すると私が喜びます。
https://www.dropbox.com/referrals/NTc5ODE1Njk