2011/09/17

execute Dropbox on Text Based Linux

仮想化した自宅サーバのバックアップ方法として、ディスクイメージファイルを dropboxにアップロードする方法を検討しました。

サーバはCLIなので、TextBasedLinuxInstall を参考にインストールします。
参考に、というかそのままなのですが、ここにメモ for 未来の私。

Step-by-step versionの手順を踏みます。

1. Dropboxを利用するユーザでログイン
rootで動かすにはセキュリティ的にも不安があるので、一般ユーザでDropboxを動かすようにします。

2. wgetでソースをダウンロード
ホームディレクトリにダウンロードします。
$ cd ~/
$ wget -O dropbox.tar.gz "http://www.dropbox.com/download/?plat=lnx.x86"   
(64bit ver.の場合は wget -O dropbox.tar.gz "http://www.dropbox.com/download/?plat=lnx.x86_64"   )

3. tarボールを展開する...まえにチェック
tar t します

$  tar -tzf dropbox.tar.gz
4. 展開
tar x します
 $ tar -xvzf dropbox.tar.gz 
~/.dropbox/
~/.dropbox-dist/
2つのディレクトリが展開されます。

5. ランゲージ設定
環境変数 LANG を設定します。
私はCLIでしか使用しないので、'C'です。
$ export LANG=C LC_ALL=C
ログイン時に自動的に指定したいときは ~/.bashrc や ~/.profile などに この一行を入れておきます。

6. dropboxd起動
dropboxdを起動すると ~/Dropbox ディレクトリを作成します。
もし、異なるディレクトリを Dropboxファイル格納ディレクトリにしたい場合は、
そのディレクトリ(/data/Dropbox など)を作成し、~/Dropbox -> /data/Dropdox などのようにシンボリックリンクを作成します。
受け皿が用意できたら心を鎮めてプロセスを起動します。
$ ~/.dropbox-dist/dropboxd
初回起動時は怪しげなURLが数秒後とに表示されるので、別マシン(Mac や Windows)のWebブラウザからリンクに移動します。
This client is not linked to any account... Please visit https://www.dropbox.com/cli_link?host_id=謎の文字列  to link this machine.

うまくいけば Linuxマシンがクライアントとして認証され、上記メッセージは停止してクライアントとしての動作が開始します。

インストールはここまで終了です。

dropboxd は一般プロセスなので、ログインして起動しなければなりません。
nohup ~/.dropbox-dist/dropboxd &
でログアウトあとでも動くようにしても良いのですが、サーバ再起動後などはログインしなおしてまた実行しなければいけません。
そこで、プロセスの有無をチェックしてなければ起動するスクリプトを 1日1回程度 cronで実行するようにします。

スクリプトはこんな感じ

USERNAME@SERVER:~$ cat /home/USERNAME/bin/exec_dropbox.sh
#! /bin/sh
# check dropbox process, exec if dropbox process isn't exist.
A=`ps -ef | grep dropbox | grep '/home/USERNAME/.dropbox-dist/dropbox' | grep -v grep | sed '/^$/d' | wc -l`

if [ $A -eq "0" ]; then
    nice -n +19 /home/USERNAME/.dropbox-dist/dropboxd &
#    echo "execute dropbox"
fi

crontabはこんな感じ

USERNAME@SERVER:~$ crontab -l | grep dropbox
# execute dropbox
25 8 * * *    /home/USERNAME/bin/exec_dropbox.sh > /dev/null 2>&1


サーバ仮想化についてはまた後日...

0 件のコメント:

コメントを投稿