LoginSignup
15
13

More than 5 years have passed since last update.

Ubuntu 14.04 LTSでDropboxのcli&同期環境をつくる

Posted at

近しい手順はいくつかあったのですが、そのものドンピシャがなかったのでまとめます。

今回のやりたかったことは以下の通り。

  • サーバ環境(X Windowなし)
  • OS起動時に自動起動したい
  • そして勝手に同期を初めてもらいたい

Dropboxの公式手順がユーザ権限で動かせるcli導入手順なので、どうしてもその派生手順が多い。
とはいえ今回はサーバなのでパッケージ以外は利用したくない。

というわけで、以下が手順です。

nautilus-dropboxのインストール

面倒なのでパッケージを利用させて頂く。

$ sudo apt-get install nautilus-dropbox

dropboxの初期設定

まずは手動で動作する環境を。
というわけで、対象ユーザ(後のowner)でdropboxを起動して設定します。動かすときは 一般ユーザ権限 なので注意!(rootで起動しちゃうと各種ファイルがrootで作られるので後にパーミッションを修正する必要あり)

config-dropbox
$ dropbox start -i
Starting Dropbox...Done!

# しばらく待つ...

$ dropbox start -i
To link this computer to a dropbox account, visit the following url:
https://www.dropbox.com/cli_link?host_id=xxxxxxxxxxxxxxxx

表示されたURLをブラウザで叩いて認証を通ると認可されます。

これで無事クライアント設定がされ、対象ユーザのホームディレクトリにDropboxディレクトリが出来ます。

dropboxの自動起動設定

今回の山場です。以下のようなスクリプトを作成します。

/etc/init.d/dropbox
#!/bin/sh
#dropbox service
DROPBOX_USERS="user1 user2"

DAEMON=/usr/bin/dropbox

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

stop() {
   echo "Stopping dropbox..."
   for dbuser in $DROPBOX_USERS; do
       HOMEDIR=`getent passwd $dbuser | cut -d: -f6`
       start-stop-daemon -o -c $dbuser -K -u $dbuser -x $DAEMON -- stop
   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

パッケージのバイナリを使う関係で、オリジナルのものからは若干変えていまして、以下が変更点です。

  • daemon化対象を/usr/bin/dropboxに(先ほどの設定時に叩いたコマンド)
  • 参照が/usr/binなので存在チェックを外す
  • 操作モード(start, stop)に関する引数を追加
  • こいつ自身がやってくれる模様なので、バックグラウンド化を外した

あとはこれを自動実行に入れます。

$ sudo chmod 755 /etc/init.d/dropbox
$ sudo update-rc.d dropbox default 99

で、再起動して一般ユーザownerのdropboxプロセスが起動していれば無事完了。

参考

スクリプトのベースはここから拝借しました
http://www.dropboxwiki.com/tips-and-tricks/install-dropbox-in-an-entirely-text-based-linux-environment#Running_on_system_startup

15
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
13