Syncthingで同期しよう

Syncthingってなあに?

Syncthingはリアルタイムな同期ツールです。オープンソースでマルチプラットフォームです。中央サーバを用意さえすればDropbox等のクラウドストレージと同等に使えます。

導入

Windows Server 2012 R2(サーバ)とWindows10(デスクトップ)でやってみます。
Chocolateyから。

C:> choco install syncthing

起動

インストール完了後、そのままsyncthingと打ちます。

C:> syncthing

この作業をサーバとデスクトップ双方で行います。

完了したら、Webブラウザでhttp://127.0.01:8384を開きます。(Syncthing起動完了後自動でWebブラウザが開きます。)

デバイス追加のボタンを押します。(サーバ、デスクトップどちらでも構いません。)
コンソール出力のMy ID:を同期させたい相手に渡します。

フォルダを追加ボタンで同期させたいフォルダを追加します。

相手方に追加承認のメッセージが出るので、追加ボタンで追加します。

初回設定直後は同期完了まで時間がかかります。

こんな感じでレポートが出せます。

Linuxでも

 ~ $ curl -s https://syncthing.net/release-key.txt | sudo apt-key add -
~ $ echo "deb http://apt.syncthing.net/ syncthing release" | sudo tee /etc/apt/sources.list.d/syncthing.list
~ $ sudo apt-get update
~ $ sudo apt-get install syncthing

または、公式からtar.gzをダウンロード

 ~ $ cd Downloads/
~/Downloads $ tar xzvf syncthing*.tar.gz
~/Downloads/syncthing-linux-amd64-v0.12.24 $ sudo cp syncthing /usr/local/bin
~/Downloads/syncthing-linux-amd64-v0.12.24 $ cd ~
~ $ syncthing
 ~ $ syncthing
参考

How To Install and Configure Syncthing to Synchronize Directories on Ubuntu 14.04 -DigitalOcean

常駐させる

実運用するには、サービス化して裏で自動実行せたいものです。

実行ファイルsyncthing.exeをスタートアップやタスクスケジューラに登録させるのも手ですが、WindowsにはサードパーティのSynctrayzorというタスクトレイ(システムトレイ)常駐ツールがあります。

C:> choco install synctrayzor

自動起動を設定しておくとログインとともに起動、タスクトレイに常駐しDropboxアプリっぽく同期してくれます。
こんなかんじ。

Syncthingは使えるか?

自宅サーバがあるのであればSyncthingを導入することにより、クラウドストレージの代用として利用できます。中央サーバはもちろんLinuxでも可能。出来合いのNASのような場合はシステムを弄れば使用できますが、最近は機能として同等のな同期機能を揃えている機種があるので、NAS利用者には需要がないかもしれませんね。

リソース喰いに関して

SyncthingとSynctrayzorを合計してもDropboxより低く、インストールした機器を比較し環境を考慮しても尚、WindowsではSyncthingのほうが効率的といえます。パフォーマンスは計測は行っていませんが、体感的には即時反映され高速に同期するうようにみえます。

拠点間通信について

各PCはグローバルなIPを持っていないので拠点間通信には中継用のサーバが必要です。現在拠点を結ぶ中継サーバは無償で提供されています。もちろんストレージサービスではないので、データを置くことはないのですが、それでもタダで利用させてもらっているので恐縮します。

以上、Syncthingでした。

関連

公式 https://www.syncthing.net/
documentation https://docs.syncthing.net/