自家用 Dropbox? な vbox を使ってみる


自前のDropboxを実現する1ファイルのシェルスクリプト「vbox」 – MOONGIFT|オープンソース・ソフトウェア紹介を軸としたITエンジニア、Webデザイナー向けブログ
http://www.moongift.jp/2011/08/20110802-2/

早速使ってみたよ。以下の構成で試してみた。

機種(OS) ホスト名
サーバー Mac mini remora.cx
クライアント 1 Macbook Air remora-air2
クライアント 2 ホスト 1 上の Windows XP remora-air-win

サーバー(Mac mini)の設定

作業用フォルダの作成

remora.cx $ mkdir -p ~/.vbox/data

クライアント 1(Macbook Air)の設定

スクリプトを git でダウンロード

git は homebrew とか Macports でインストールしてね。

最速で Git を Mac にインストールして基本的なコマンドを使う方法 | ウェブル
http://weble.org/2011/02/14/git-mac-install

homebrew でパッケージを管理する – えこ日記
http://d.hatena.ne.jp/eco31/20101213/1292166727

remora-air $ mkdir ~/git
remora-air $ cd ~/git
remora-air $ git clone https://github.com/vbox/vbox

スクリプトをコピーし、作業用フォルダを作る。

remora-air $ mkdir -p ~/bin/vbox
remora-air $ cp ~/git/vbox/vboxd.sh ~/bin
remora-air $ chmod +x ~/bin/vboxd.sh

同期するフォルダを作成。

remora-air $ mkdir ~/vbox

スクリプトの修正

~/bin/vboxd.sh を次のように修正した。

HOST="[email protected]"          # ユーザー名@サーバーのホスト名
SOPDIR="/Users/delphinus/.vbox"     # サーバーに作成した作業用フォルダ
FOLDER="/Users/delphinus/vbox"      # クライアントに作成した同期するフォルダ
OPDIR="/Users/delphinus/bin/vbox"   # クライアントに作成した作業用フォルダ
PCNAME=`hostname -s`                # クライアントのホスト名
GREP="/usr/bin/grep"                # grep のフルパス

番外:ssh のログイン設定

vbox はサーバーに公開鍵暗号方式で接続することを前提としている。使用するアカウントの設定を事前に済ませておくこと。

[ SSH ] 公開鍵認証を使って、パスワード入力の手間を省く | Bowz::Notebook
http://bowz.info/?p=2419

パスフレーズはなしにしておかないと、同期の度に入力を要求されてめんどくさいと思う。多分。

実行!

では実際に実行してみよう。同期するフォルダにファイルを突っ込んでスクリプトを実行してみる。

remora-air $ cp ~/test.txt ~/vbox
remora-air $ ~/bin/vboxd.sh
LOCK RETURNED
NO LOCK FOUND, CONTINUE
/Users/delphinus/bin/vboxd.sh: line 97: /Users/delphinus/bin/vbox/.tmp1: No such file or directory
/Users/delphinus/bin/vboxd.sh: line 99: [: 0: unary operator expected
processing queue for remora-air2
cat: /Users/delphinus/.vbox/.vbox.remora-air2: No such file or directory
im now here /Users/delphinus/vbox
cat: /Users/delphinus/.vbox/.vbox.names: No such file or directory
building file list ...
2 files to consider
./
test.txt
        2112 100%    0.00kB/s    0:00:00 (xfer#1, to-check=0/2)

sent 1086 bytes  received 48 bytes  453.60 bytes/sec
total size is 2112  speedup is 1.86
receiving file list ...
2 files to consider

sent 20 bytes  received 98 bytes  47.20 bytes/sec
total size is 2112  speedup is 17.90
DELETING LOCK

なんか色々とエラーが出るが問題なく完了した。サーバーにログインすると確かにコピーされている。

remora.cx $ ls -l ~/.vbox/data
total 8
-rw-r--r--  1 delphinus  staff  2112  8  3 08:56 test.txt

クライアント 2(Windows XP)の設定

番外:cygwin の設定

Windows に Cygwin バージョン 1.7 をインストール
http://kkaneko.com/rinkou/cygwin/cygwin.html

スクリプトを動かすためには Windows 上に cygwin 環境を構築する必要がある。

以下の必要なパッケージは標準ではインストールされないので個別にインストールしておくこと。

git
openssl
rsync

Mac の時と同じように公開鍵暗号方式でサーバーにアクセスできるようにもしておこう。

スクリプトのダウンロードをフォルダの作成

ここら辺は Mac でやったときとほとんど一緒である。なんか git の時にエラーが出たので無理矢理通したよ。

remora-air-win $ mkdir ~/git
remora-air-win $ cd ~/git
remora-air-win $ GIT_SSL_NO_VERIFY=true git clone https://github.com/vbox/vbox
remora-air-win $ mkdir -p ~/bin/vbox
remora-air-win $ cp ~/git/vbox/vboxd.sh ~/bin
remora-air-win $ chmod +x ~/bin/vboxd.sh
remora-air-win $ mkdir /cygdrive/c/vbox

git cloneしようとしたらSSLの認証エラー – oTheRwoRld
http://d.hatena.ne.jp/otherworld/20110712/1310467750

同期するフォルダは C:\vbox にしてみた。

スクリプトの修正

これも、若干違うがほとんど一緒。

HOST="[email protected]"          # ユーザー名@サーバーのホスト名
SOPDIR="/Users/delphinus/.vbox"     # サーバーに作成した作業用フォルダ
FOLDER="/cygdrive/c/vbox"           # クライアントに作成した同期するフォルダ
OPDIR="/home/delphinus/bin/vbox"    # クライアントに作成した作業用フォルダ
PCNAME=`hostname`                   # クライアントのホスト名
GREP="/usr/bin/grep"                # grep のフルパス

実行!

remora-air-win $ ~/bin/vboxd.sh
LOCK RETURNED
NO LOCK FOUND, CONTINUE
/home/delphinus/bin/vboxd.sh: line 97: /home/delphinus/bin/vbox/.tmp1: No such file or directory
/home/delphinus/bin/vboxd.sh: line 99: [: 0: unary operator expected
processing queue for remora-air-win
cat: /Users/delphinus/.vbox/.vbox.remora-air-win: No such file or directory
im now here /cygdrive/c/vbox
building file list ...
1 file to consider
./

sent 83 bytes  received 26 bytes  72.67 bytes/sec
total size is 0  speedup is 0.00
receiving file list ...
2 files to consider
test.txt
        2112 100%    2.01MB/s    0:00:00 (xfer#1, to-check=0/2)

sent 42 bytes  received 1088 bytes  452.00 bytes/sec
total size is 2112  speedup is 1.87
DELETING LOCK

またもやなんかエラーが出たが無事に終了。コピーもちゃんとできてるみたい。

remora-air-win $ ls -l /cygdrive/c/vbox
total 4
-rw-r--r--+ 1 delphinus なし 2112 Aug  3 08:56 test.txt

まとめ

セットアップはちとめんどくさいが、動作原理は単純なだけに問題も少ないだろう。

最も、単純すぎてエラーチェックなどもあんまりしてないんでそこんとこは注意。スクリプトを Control+C で強制終了させるとロックファイルがサーバーに残ってしまって二度と起動しなかったよ! せめてロックファイルを削除するオプションくらいつけた方がいいかもな〜

コメントを残す