Skip to content

Dropbox for LinuxをCLIのUbuntuに入れてみた

|

CLI用のインストール方法が書かれた日本語のブログ記事もあったのですが、インストール方法が変わったようなのでメモとして残しておきます。GUIで使ってる人はdebパッケージが用意されているのでポチポチとインストールすることが出来ると思います。

まずDropboxって何よ

Dropboxは複数のマシン間のファイルを共有することが出来るアプリケーション/サービスです。無料で2GBの容量が使うことが出来ます。クライアントアプリケーションはWin/Mac/Linux用のインストーラが用意されており、またiPhone/iPadやAndroidからも使用することが出来ます。Webインターフェースから履歴の管理や削除したファイルを復活させることも出来ます。一度開発中のアプリケーションを間違えてリポジトリごと消してしまい、しかしDropboxでバックアップしていたために復活させて事無きを得たこともありました。他にもデータ共有/バックアップのサービスはいくつかあります。が、シンプルで使いやすく、かつ同期速度も一番速いDropboxを、僕は愛用しています。

Invite your friends to Dropbox!

Dropboxを使っていない人は是非使い始めてみてはいかがでしょうか。上記リンクから登録すると、僕と登録した人2人に250MB増量されて使うことが出来ます。なので、良ければこちらから登録して頂けると嬉しいです。

※登録した人は僕にメールアドレスが分かるようになっています。メールアドレスを知られたくない場合はダミーのアドレスで登録し登録後にメールアドレスを変更するか、または新規登録をお願いします。

環境

Ubuntu 10.04.1 LTS
Python 2.6.5

インストール

Dropboxから圧縮ファイルをダウンロードして展開。
(64bitの場合は http://www.dropbox.com/download/?plat=lnx.x86_64 に読み替えてください。)

cd ~
wget -O dropbox.tar.gz http://www.dropbox.com/download/?plat=lnx.x86
tar -zxof dropbox.tar.gz

はい、これでインストール完了です。

起動は~/.dropbox-dit/dropboxdを叩くだけです。
どうやらユーザーごとに実行ファイルを持つみたいですね。
それでは、起動しましょう。

~/.dropbox-dist/dropboxd &

起動してしばらくするとこんな感じのメッセージが表示されます。

This client is not linked to any account...
Please visit https://www.dropbox.com/cli_link?host_id=xxxxx to link this machine.

ここに表示されたURLにブラウザからアクセスするとマシンの認証が完了します。
(ブラウザからアクセスするマシンはどのマシンからでも構いません。)
認証が完了すると~/Dropboxが作成され自動的に同期が始まります。

起動スクリプトを配置

これだけだと起動や停止が面倒なので起動スクリプトを置きましょう。

sudo vim /etc/init.d/dropbox

下記を丸々っとコピペして、DROPBOX_USERSに使用ユーザーを半角スペース区切りで入れてください。

# dropbox service
DROPBOX_USERS="user1 user2"
DAEMON=.dropbox-dist/dropbox  

  start() {
     echo "Starting dropbox..."
     for dbuser in $DROPBOX_USERS; do
         HOMEDIR=`getent passwd $dbuser | cut -d: -f6`
         if [ -x $HOMEDIR/$DAEMON ]; then
             HOME="$HOMEDIR" start-stop-daemon -b -o -c $dbuser -S -u $dbuser -x $HOMEDIR/$DAEMON
         fi
     done
  }

  stop() {
     echo "Stopping dropbox..."
     for dbuser in $DROPBOX_USERS; do
         HOMEDIR=`getent passwd $dbuser | cut -d: -f6`
         if [ -x $HOMEDIR/$DAEMON ]; then
             start-stop-daemon -o -c $dbuser -K -u $dbuser -x $HOMEDIR/$DAEMON
         fi
     done
  }

  status() {
     for dbuser in $DROPBOX_USERS; do
         dbpid=`pgrep -u $dbuser dropbox`
         if [ -z $dbpid ] ; then
             echo "dropboxd for USER $dbuser: not running."
         else
             echo "dropboxd for USER $dbuser: running (pid $dbpid)"
         fi
     done
  }

   case "$1" in
   start)
     start
     ;;
    stop)
     stop
     ;;
    restart|reload|force-reload)
     stop
     start
     ;;
    status)
     status
     ;;
    *)
     echo "Usage: /etc/init.d/dropbox {start|stop|reload|force-reload|restart|status}"
     exit 1
  esac
  exit 0

保存したら、実行権限を付けて、自動起動に登録。

sudo chmod +x /etc/init.d/dropbox
sudo update-rc.d dropbox defaults

こんな感じで使います。使用ユーザーが自分だけならsudoは要りません。

$ /etc/init.d/dropbox start
Starting dropbox...
$ /etc/init.d/dropbox restart
Stopping dropbox...
Starting dropbox...
$ /etc/init.d/dropbox stop
Stopping dropbox...

操作用のスクリプトを配置

これで大体は完了しました。ただ、これだけだとファイルが同期済/同期中/未同期なのかよく分かりません。しかし、流石Dropboxさん。操作用のPyhtonスクリプトまで用意してくれてます。早速これを使えるようにしましょう。Pythonが入ってない場合はインストールしてください。

cd ~
mkdir bin
cd bin
wget -O dropbox.py http://www.dropbox.com/download?dl=packages/dropbox.py
chmod +x dropbox.py

Ubuntuなら~/binにパスが通ってると思います。通ってなければ追加してください。

使い方はこんな感じです。

$ cd ~/Dropbox
$ dropbox.py 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.py status
Idle
$ dropbox.py filestatus
music:    up to date
lib:      up to date
bin:      up to date
etc:      up to date
doc:      up to date
.dropbox: unwatched
photo:    up to date
log:      up to date
movie:    up to date

同期済みのものは「up to date」、同期中のものは「syncing」となるようです。

まとめ

以上、お疲れ様でした。

dropbox.pyがあれば何か便利な定期処理出来そうですね!ლ(>ω<ლ)

この記事に書いた事は、大体下記参考リンク先に載ってることの翻訳ですが、何かお役に立てれば嬉しいです。
困ったことがあればDropboxの公式のWikiを見れば大体解決すると思います。

参考リンク

Dropbox for Linux

TipsAndTricks/TextBasedLinuxInstall – Dropbox Wiki

関連記事

One Trackback/Pingback

  1. [...] インストール部分はほぼこちらのままの方法で行いました。 [...]

Post a Comment

Your email is never published nor shared. Required fields are marked *
*
*