ファイルを同期するソフトは Dropbox や SugarSync, BitTorrent Sync などがあるが、それらの代わりとなる Syncthing というソフトがある事を知ったのでさっそく使ってみる。
syncthingSynthing の特徴は BitTorrent Sync のように分散型のファイル同期ソフトである事に加え、オープンソースである事が言えるだろう。公式 Web サイトにある Open Development の項目には Open Source, Open Protocol, Open Process と書かれている。
今のところ最新バージョンでは OS X, Free BSD, Linux(amd64/arm) があるが Windows 版はバグがあるっぽいので前のバージョンを使う必要がある。
Windows syncing is broken · Issue #94 · calmh/syncthing · GitHubインストール
インストールといってもバイナリファイルを圧縮して配布しているので解凍で実行するだけです。
今回は OS X と VPS 上の Ubuntu の2つで試してみる。
OS X
tar ボールがあるのでそれをダウンロードし、解凍すればすぐ使える。
解凍後出てくる syncthing を実行し、ブラウザから http://localhost:8080/ へアクセスしてみよう。
一度実行すれば ~/.syncthing と ~/Sync の2つのディレクトリが作成される。それぞれ設定, 同期対象のディレクトリとなる。対象のディレクトリはもちろん変更できる。
Ubuntu
これも tar ボールがあるのでそれをダウンロードし、解凍すれば使える。
$ wget https://github.com/calmh/syncthing/releases/download/v0.6.6/syncthing-linux-amd64-v0.6.6.tar.gz
$ tar zxvf syncthing-linux-amd64-v0.6.6.tar.gz
syncthing-linux-amd64-v0.6.6/
syncthing-linux-amd64-v0.6.6/LICENSE
syncthing-linux-amd64-v0.6.6/README.md
syncthing-linux-amd64-v0.6.6/syncthing
syncthing-linux-amd64-v0.6.6/syncthing.asc
$ cd syncthing-linux-amd64-v0.6.6/
$ ./syncthing
2014/03/24 23:43:09 INFO: Generating RSA certificate and key...
2014/03/24 23:43:17 OK: Created RSA certificate file
2014/03/24 23:43:17 OK: Created RSA key file
[JZHMK] 2014/03/24 23:43:18 INFO: Version v0.6.6
[JZHMK] 2014/03/24 23:43:18 INFO: My ID: ****************************************************
[JZHMK] 2014/03/24 23:43:18 INFO: No config file; starting with empty defaults
[JZHMK] 2014/03/24 23:43:18 INFO: Edit /home/ryomatsu/.syncthing/config.xml to taste or use the GUI
[JZHMK] 2014/03/24 23:43:18 INFO: Starting web GUI on http://127.0.0.1:8080/
[JZHMK] 2014/03/24 23:43:18 INFO: Sending local discovery announcements
Linux 版ももちろん ~/.syncthing と ~/Sync の2つが作成される。
二台を同期させる
フォルダを同期させる為には同期する対象のコンピュータそれぞれに設定を行う必要がある。ブラウザ上から GUI で行うか ~/.syncthing/config.xml を直接編集するかの二通りある。今回は MAC は GUI で, Linux は config.xml を編集してみた。
ブラウザから GUI で編集
syncthing を起動した状態でブラウザで localhost:8080 へアクセスすると syncthing のページが表示されるはずだ。
Cluster の右下に Add ボタンがあるのでそこをクリック。
Node ID, 名前, アドレスを入力する。Node ID は syncthing 起動時に表示される文字列です。名前は何でも良いです。アドレスは dynamic か IPアドレス:ポート番号 のような表記で指定します。自分のサーバは IP アドレス固定なのでそれで指定しています。
入力内容が大丈夫なら右下の Save を押したら一覧に表示されるようになります。
config.xml を直接編集
Ubuntu側はブラウザで繋げれなかったので config.xml を直接編集した。
$ vim ~/.syncthing/config.xml
<configuration version="1">
<repository directory="/home/ryomatsu/Sync">
<node id="****************************************************" name="">
<address>dynamic</address>
</node>
<node id="****************************************************" name="">
<address>dynamic</address>
</node>
<以下略>
configuration/repository/node を追加していくだけだ。設定もブラウザ同様 Node ID, 名前, アドレス の3つだけなので難しくないだろう。
ついでにこの下では syncthing 自体の設定も行える。
同期してみる
Mac, Linux 両方設定したら syncthing を再起動してみよう。一覧で In Sync になってれば成功だ。~/Sync ディレクトリに適当なファイルをいれて同期されるか試してみよう。
これで同期できた。loumo.jp と表記のあるやつが Linux で、このブログがある VPS なわけだが一応コレはファイル置き場としての役割も持っている。なのでこういったファイル同期ソフトがあるととても便利だ。
Dropbox などのプロダクトと違い、全て自分で設定などを行わないが容量無制限で共有できるというのは大きい。まだまだ開発中なので今後に期待したい。