Syncthing
関連記事
Syncthing はオープンソースのファイル同期クライアント・サーバーアプリケーションです。Go で書かれており、Block Exchange Protocol を実装しています。Syncthing ノード間のトランジットは全て暗号化され、全てのノードは暗号証明書によって一意に識別されます。
インストール
Syncthing は syncthing または syncthing-gtk パッケージでインストールできます。後者のパッケージには inotify による同期、デスクトップ通知、Nautilus や Nemo、Caja との投稿などの機能が追加されています。
インストールしたら、ターミナルから手動で syncthing バイナリを実行するか、パッケージに含まれている syncthing.service
を使って systemd/ユーザーインスタンスで起動してください。
$ systemctl --user start syncthing.service
もしくは、必要であれば syncthing@.service
を利用することもできます。この場合アクティブなユーザーセッションを必要としません。
systemd サービスは特定のユーザーで起動する必要があります。サービスに関する詳細は Autostart-syncthing with systemd を見て下さい。
syncthing を起動したら、デフォルトで localhost port 8384 からウェブインターフェイスを使うことができます。syncthing を手動で起動したときは、ブラウザで管理ページを開いて下さい。
設定
インストールしたら Syncthing はすぐに使うことができます。ウェブインターフェイスから新しいサーバーやフォルダを追加できます。シンプルなネットワークをセットアップする方法は Syncthing's getting started を読んで下さい。
最初の起動時に、~/Sync
にデフォルトリポジトリが作成されます。ウェブ管理インターフェイスで確認できます。右側が追加したノードのリストで、左側がリポジトリ(他のノードと共有するフォルダ)のリストになります。
新しくノードを追加するには、ノードのリストの下方にある "Add Node" をクリックして下さい。ノードの Node ID (他のマシンで Edit > Show ID
をクリックすることで確認できます) と名前、アドレスの入力を求められます。アドレスに "dynamic" と指定すると、syncthing アナウンスサーバーによって自動的にノード間でアドレスが交換されます。Node ID についてもっとよく知りたい場合は、適当な syncthing documentation page を読んで下さい。
設定を保存すると、syncthing サーバーを再起動するように表示されます。再起動することで変更が適用されます。
次に、デフォルトノードの設定を変更するか (名前をクリックして Edit
)、データを共有する新しいノードを作成します。データを共有したいノードにチェックを入れれば、アクセスできるようになります。
Inotify を使う
Inotify (inode notify) はファイルシステムの変更を検出してアプリケーションに変更を報告する Linux カーネルのサブシステムです。Syncthing は Inotify をサポートしていませんが、Syncthing REST API と対話する公式の拡張モジュールが存在します。Inotify を利用することで毎分ごとに再スキャンすることがなくなります。フォルダの再スキャン間隔は自動的に増えていき再スキャンを出来るだけしないようになります。Syncthing-inotify は syncthing-inotify パッケージでインストールできます。systemd サービスが含まれているので有効化・起動してください:
# systemctl enable syncthing-inotify@user.service # systemctl start syncthing-inotify@user.service
もしくはユーザーユニットとして有効化・起動:
$ systemctl --user enable syncthing-inotify.service $ systemctl --user start syncthing-inotify.service
syncthing-inotify サービスは syncthing を必要とするので syncthing を起動・有効化する必要はありません。
トラブルシューティング
Debugging syncthing を見て下さい。