インフラエンジニアXの備忘

とある企業のシステム部門のインフラエンジニアです。忘れっぽい自分のメモ書きとしてこのブログを使用します。

CentOS6にDropboxをインストールして使ってみる。

LinuxCentOSDropboxをインストールしてテストすることがあったのでその手順をメモ。

目的

Proxmox配下で動作しているCTのhoge1にDropboxをインストールして
Dropboxとの同期までを設定する。

特定フォルダの同期除外や同期ステータスの確認など運用方法についても調査して
一通り運用できるような準備を実施する。

環境

  • 親ノード proxmox1
    • 子ノード hoge1.example.com
    • IP 192.168.56.201
    • ユーザーはrootで動かす

本来はrootユーザーで動作させるのではなく、
どのユーザーでDropboxを動作させるかなどは最初に考えて構築すべき。
例えばdropboxユーザーを作成して、そのユーザーで動作させるなどなど。

CentOSとアカウントをリンクする手順

■hoge1のコンソールから

https://www.dropbox.com/ja/install?os=linux にも記載があるけれども…

f:id:hajimenovic:20140715202455p:plain

SSHログインしたら以下のコマンドを実行する。

[root@hoge1 ~]# cd ~ && wget -O - "https://www.dropbox.com/download?plat=lnx.x86_64" | tar xzf -
[root@hoge1 ~]# ~/.dropbox-dist/dropboxd

※ちなみに当たり前ですが、32bitと64bitを間違えるとエラーとなりURLは表示されません。
 事前に動いているOSがどちらかを確認しておきます。2回もやってしまった…。お恥ずかしい…。

すると、以下のURLが表示されるので、ブラウザでアクセスして
リンクさせたいIDとパスワードを入力してアカウントをサーバーマシンとリンクさせる。

This computer isn't linked to any Dropbox account...
Please visit https://www.dropbox.com/cli_link?host_id=XXXXXXXXX to link this device.

URLで認証すると、勝手に同期が始まってしまうので
同期フォルダの調整やネットワーク空き時間での初回同期をしたい場合については
「Ctrl+c」で先ほど起動したDropboxのデーモンプログラムを一旦終了する。

今回は仮想環境上にテスト的に作成したので
rootユーザーでデーモンプログラムを動作させ、/rootディレクトリ配下で作業をしたので
ディレクトリ構造は以下のようになっている

     root
      |
      |-Dropbox
      |
      |-.dropbox-dist
          |
          |-dropboxd
          |-dropbox-lnx.XXXXXXXX
          |-VERSION

CLIで操作するためのコマンドツールインストール手順

コマンドを配置するためのディレクトリを作成し、wgetでコマンドを取得、実行権限を付与する。

[root@hoge1 ~]# mkdir bin
[root@hoge1 ~]# cd bin
[root@hoge1 bin]# wget "https://www.dropbox.com/download?dl=packages/dropbox.py"
[root@hoge1 bin]# chmod +x dropbox.py

コマンドヘルプはこんな感じ

[root@hoge1 bin]# ./dropbox.py -h
Dropbox command-line interface

commands:

Note: use dropbox help <command> to view usage for a specific command.

status       get current status of the dropboxd
help         provide help
puburl       get public url of a file in your dropbox
stop         stop dropboxd
running      return whether dropbox is running
start        start dropboxd
filestatus   get current sync status of one or more files
ls           list directory contents with current sync status
autostart    automatically start dropbox at login
exclude      ignores/excludes a directory from syncing
lansync      enables or disables LAN sync

起動スクリプト自動起動設定

起動時にDropbox自動起動したいので、起動スクリプトを作成する。
※起動スクリプトについてはいろいろ参考にさせていただきました。ありがとうございました!

参照:http://easyramble.com/install-dropbox-into-centos.html
  :http://hidden-by-the-leaves.blogspot.jp/2012/10/vps-centos62dropbox.html

#!/bin/sh

# chkconfig: 345 99 01
# description: dropbox
# processname: dropbox

exec="/root/bin/dropbox.py" →自分がコマンドをインストールしたpathを記載
user="root" →実行ユーザーを記載

start() {
    echo -n $"Starting $prog: "
    su -c "${exec} start" ${user}
}

stop() {
    echo -n $"Stopping $prog: "
    su -c "${exec} stop" ${user}
}

status() {
    su -c "${exec} status" ${user}
}

restart() {
    stop
    start
}

case "$1" in
    start)
        $1
        ;;
    stop)
        $1
        ;;
    restart)
        $1
        ;;
    status)
        $1
        ;;
    *)
        echo $"Usage: $0 {start|stop|status|restart}"
        exit 2
esac
exit $?

起動スクリプトファイルを作成して、実行権限を付与し、起動させる。

[root@hoge1 ~]# cd /etc/init.d
[root@hoge1 init.d]# vi dropbox
[root@hoge1 init.d]# chmod +x dropbox
[root@hoge1 init.d]# /etc/init.d/dropbox start
Starting : Starting Dropbox...Done!

自動起動を設定する。

[root@hoge1 init.d]# chkconfig --add dropbox
[root@hoge1 init.d]# chkconfig dropbox on
[root@hoge1 init.d]# chkconfig --list | grep dropbox
dropbox             0:off     1:off     2:on     3:on     4:on     5:on     6:off

先ほど、起動したので、現在どのような状態かを確認する。

[root@hoge1 10001]# /etc/init.d/dropbox status
Up to date

この状態の場合は、同期完了済となっている。
ここまでで、一通り動作する環境は作成完了!

開発用Linuxに専用のアカウントを用意してインストールし、
→cronでプログラムのSourceを一括で圧縮
→圧縮したファイルをDropboxフォルダにコピー
→勝手にクラウド上へアップロード
ということもできてよさそう。



NETGEAR Inc. ReadyNAS 102 【3年保証】 2ベイ Diskless RN10200-100AJS

NETGEAR Inc. ReadyNAS 102 【3年保証】 2ベイ Diskless RN10200-100AJS